首页 理论教育 数据准备:Spark SQL应用程序中生成用户日志数据

数据准备:Spark SQL应用程序中生成用户日志数据

时间:2023-07-02 理论教育 版权反馈
【摘要】:2.数据创建在Spark SQLUserlogsHottestDataManually.java应用程序中,通过numberItems指定10000,先生成10000条数据,调用ganerateUserLogs函数,在ganerateUserLogs函数分别调用生成当前日期、随机用户ID、随机商品ID、随机城市名称、随机设备类型的各个函数,然后将生成的时间、用户id、商品、地点、设备信息记录拼接成字符串,将字符串记录保存到磁盘文件系统。

数据准备:Spark SQL应用程序中生成用户日志数据

在本案例中,根据项目的需求,需要获取用户搜索的日期、用户名称、用户搜索的商品、用户所在的城市、用户通过什么渠道登录网站(例如:安卓手机、苹果手机或平板电脑)等数据信息。模拟数据的字段包括:日期(date),用户(userID),商品(ItemID),城市(CityID),终端(Device);模拟数据记录数可以任意指定(如万、千万、亿),在代码中赋值给numberItems就可以生成numberItems条记录,这样在Spark SQL中测试数据就非常方便,也符合实际生产应用场景的需求,因此本案例具备生产系统应用的价值。

1.数据说明

通过程序Spark SQLUserlogsHottestDataManually模拟生成数据(程序获取地址:Http://blog.csdn.net/dnan_2hihna/article/details/78821810)。

日志的字段为:

日期,date,格式为yyyy-mm-dd,是指日志记录生成的日期

用户id,userID,在网站进行搜索的用户ID

商品id,ItemID,用户在网站搜索的商品名称ID

城市id,CityID,用户在哪个城市登录网站

终端,Device,用户通过什么终端渠道登录网站

生成的文件路径为G:\Spark SQLData\Spark SQLUserlogsHot.log,各字段之间TAB分割,每行一条记录。

2.数据创建

在Spark SQLUserlogsHottestDataManually.java应用程序中,通过numberItems指定10000,先生成10000条数据,调用ganerateUserLogs函数,在ganerateUserLogs函数分别调用生成当前日期、随机用户ID、随机商品ID、随机城市名称、随机设备类型的各个函数,然后将生成的时间、用户id、商品、地点、设备信息记录拼接成字符串,将字符串记录保存到磁盘文件系统。

(1)ganerateUserLogs函数调用

(2)获取当前日期getCountDate

模拟生成用户点击搜索的当前日期。(www.xing528.com)

(3)随机生成用户UserID

定义一个用户ID数组,使用随机数从数组中随机获取用户ID。

(4)随机生成商品ItemID

定义一个商品ID数组,使用随机数从数组中随机获取商品名称ID。

(5)随机获取城市名称

定义一个城市名称数组,使用随机数从数组中随机获取城市名称

(6)获取设备类型

定义设备类型数组,使用随机数从数组中随机获取设备类型,如安卓手机、苹果手机、平板电脑。

(7)写入磁盘文件

将生成的用户搜索元数据记录信息:日期(date),用户(userID),商品(ItemID),城市(CityID),终端(Device)保存到磁盘文件中。

3.生成模拟数据

运行Spark SQLUserlogsHottestDataManually.java代码程序,生成的模拟数据结果保存到windows系统中的“G:\Spark SQLData\Spark SQLUserlogsHot.log”文件。其中的每行数据分别为日期(date),用户(userID),商品(ItemID),城市(CityID),终端(Device),从日志文件中选取10条记录,运行结果如下。

至此,本案例的模拟数据已生成,接下来我们实现用户每天搜索前3名的商品排名统计。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈