1.1 实验数据集
通过上面的命令,就进入到了data_format.zip文件所在的目录,并且可以看到有个data_format.zip文件。
1.2 数据集的预处理
(1)删除文件的第一行记录,即字段名称 user_log.csv的第一行都是字段名称,我们在文件中的数据导入数据仓库Hive中时,不需要第一行字段名称,因此在做数据预处理时,删除第一行
(2)获取数据集中双11的前100000条数据 由于数据集中交易数据太大,这里只截取数据集中在双11的前10000条交易数据作为小数据集small_user_log.csv 下面我们建立一个脚本文件完成上面截取任务,请把这个脚本文件放在dataset目录下和数据集user_log.csv:
上面使用vim编辑器新建了一个predeal.sh脚本文件,请在这个脚本文件中加入下面代码:
下面就可以执行predeal.sh脚本文件,截取数据集中在双11的前10000条交易数据作为小数据集small_user_log.csv,命令如下:
(3)导入数据库 下面要把small_user_log.csv中的数据最终导入到数据仓库Hive中。为了完成这个操作,我们会首先把这个文件上传到分布式文件系统HDFS中,然后,在Hive中创建两个个外部表,完成数据的导入。
现在,我们要把Linux本地文件系统中的user_log.csv上传到分布式文件系统HDFS中,存放在HDFS中的“/dbtaobao/dataset”目录下。 首先,请执行下面命令,在HDFS的根目录下面创建一个新的目录dbtaobao,并在这个目录下创建一个子目录dataset,如下: 因为需要借助于MySQL保存Hive的元数据,所以,请首先启动MySQL数据库,之后在hive中创建数据库。 这里我们要分别在数据库dbtaobao中创建一个外部表user_log,它包含字段(user_id,item_id,cat_id,merchant_id,brand_id,month,day,action,age_range,gender,province),请在hive命令提示符下输入如下命令:
2.1 操作Hive
2.2 简单查询分析
2.3 查询条数统计分析
2.4 关键字条件查询分析
2.5 根据用户行为分析
2.6 用户实时查询分析
3.1 Hive预操作
(1)创建临时表inner_user_log和inner_user_info
(2)将user_log表中的数据插入到inner_user_log
执行下面命令查询上面的插入命令是否成功执行:
3.2 使用Sqoop将数据从Hive导入MySQL
(1)登录MySQL,创建数据库,查看数据库的编码
(2)创建表
(3)导入数据
(4)查看数据