大数据框架综合实验作业

本文档详述了一套数据处理流程,包括使用Hadoop的Hive进行数据导入、预处理、分析及可视化。首先从small_user.csv开始,通过删除首行和字段预处理生成user_table.txt,然后导入Hive。接着使用Hive进行各种数据分析,如用户购买行为、浏览量统计等。最后,数据导出到MySQL并用Echarts进行可视化展示,包括每日成交量和商品访问量的Top10。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、数据

​编辑2、数据预处理

(1)删除首行数据

(2)对字段进行预处理

3、将user_table.txt中的数据最终导入到数据仓库Hive中。

4、基于hive分析数据

(1)查找前20位顾客购买日期和种类。

(2)查询用户id不重复的有多少条记录?

  (3)查询不重复的数据有多少条 

  (4)查询2014年12月10日到2014年12月13日有多少人浏览了商品

  (5)以月的第n天为统计单位,依次显示第n天网站卖出去的商品的个数

  (6)给定时间(2014-12-12)和给定地点(江西),求当天发出到该地点的货物的数量。因 为省份随机,答案不确定。

  (7)查询某一天(2014-12-12)在该网站购买商品超过5次的用户id 。

  (8)每个地区浏览次数(答案不确定)

5、可视化

(1)求每天的成交量,递减展示。

  (2)访问量前10名的商品种类。

(3)购买量前10名的用户。

1、数据

raw_user.csv:完整用户数据,记录2000万左右(见网盘-实验步骤-综合案例1数据)

small_user.csv:子集,方便测试,记录30万条

我们用small_user.csv这个小数据集进行实验,这样可以节省时间。等所有流程都跑通以后,可以使用大数据集raw_user.csv去测试。

使用file_zilla上传数据,并修改文件权限:

chmod 755 /home/hadoop/data/small_user.csv


2、数据预处理

(1)删除首行数据

sed -i '1d' small_user.csv

(2)对字段进行预处理

建一个脚本文件pre_deal.sh,把这个脚本文件和数据集small_user.csv放在同一个目录下

vim pre_deal.sh

文件内容:

#下面设置输入文件,把用户执行pre_deal.sh命令时提供的第一个参数作为输入文件名称
infile=$1
#下面设置输出文件,把用户执行pre_deal.sh命令时提供的第二个参数作为输出文件名称
outfile=$2
#注意!!最后的$infile > $outfile必须跟在}’这两个字符的后面
awk -F "," 'BEGIN{
        srand();
        id=0;
        Province[0]="山东";Province[1]="山西";Province[2]="河南";Province[3]="河北";Province[4]="陕西";Province[5]="内蒙古";Province[6]="上海市";
        Province[7]="北京市";Province[8]="重庆市";Province[9]="天津市";Province[10]="福建";Province[11]="广东";Province[12]="广西";Province[13]="云南"; 
        Province[14]="浙江";Province[15]="贵州";Province[16]="新疆";Province[17]="西藏";Province[18]="江西";Province[19]="湖南";Province[20]="湖北";
        Province[21]="黑龙江";Province[22]="吉林";Province[23]="辽宁"; Province[24]="江苏";Province[25]="甘肃";Province[26]="青海";Province[27]="四川";
        Province[28]="安徽"; Province[29]="宁夏";Province[30]="海南";Province[31]="香港";Province[32]="澳门";Province[33]="台湾";
    }
    {
        id=id+1;
        value=int(rand()*34);       
        print id"\t"$1"\t"$2"\t"$3"\t"$5"\t"substr($6,1,10)"\t"Province[value]
    }' $infile > $outfile

执行pre_deal.sh脚本文件,对small_user.csv进行数据预处理

./pre_deal.sh small_user.csv user_table.txt

3、将user_table.txt中的数据最终导入到数据仓库Hive中

(1)将user_table.txt上传到hdfs的 /bigdatacase/dataset下

hdfs  dfs  -put  /home/hadoop/bigdatacase/dataset/user_table.txt  /bigdatacase/dataset

2在hive下建立一个新的数据库

create database zxzx;

3创建外部表,并将user_table.txt已经上传至hdfs的数据存进hive下

CREATE EXTERNAL TABLE zxzx_user(

id INT,

uid STRING,

item_id STRING,

behavior_type INT,

item_category STRING,

visit_date DATE,

province STRING)

ROW
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值