学习笔记:从0开始学习大数据-41.综合实训三:网站用户行为分析

本次实验采用厦门大学林子雨教授团队开发的实验课程,在自己已安装的环境走了一遍,总体比较顺利,也遇到一些坑,记录一下,以免重入坑

学习网址:http://dblab.xmu.edu.cn/post/7499/ 大数据课程实验案例:网站用户行为分析(免费共享)

一、大数据案例-步骤一:本地数据集上传到数据仓库Hive
1.实验数据集的下载:
百度网盘下载 http://pan.baidu.com/s/1nuOSo7B
user.zip  172M  包含了一个大规模数据集raw_user.csv(包含2000万条记录),和一个小数据集small_user.csv(只包含30万条记录)

2.下载后用到的相关命令

mkdir bigdatacase
cd bigdatacase
mkdir dataset
unzip user.zip -d /root/bigdatacase/dataset
cd /root/bigdatacase/dataset
ls
head -5 raw_user.csv
head -5 small_user.csv

3.字段解析:
user_id(用户id)
item_id(商品id)
behaviour_type(包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4)
user_geohash(用户地理位置哈希值,有些记录中没有这个字段值,所以后面我们会用脚本做数据预处理时把这个字段全部删除)
item_category(商品分类)
time(该记录产生时间)

----------------
数据集的预处理
1.删除文件第一行记录,即字段名称
cd /usr/local/bigdatacase/dataset
sed -i '1d' raw_user.csv //1d表示删除第1行,同理,3d表示删除第3行,nd表示删除第n行
sed -i '1d' small_user.csv
head -5 raw_user.csv
head -5 small_user.csv

2.对字段进行预处理
包括为每行记录增加一个id字段(让记录具有唯一性)、增加一个省份字段(用来后续进行可视化分析),并且丢弃user_geohash字段(后面分析不需要这个字段)。
pre_deal.sh

nano pre_deal.sh
----------------
#!/bin/bash
#下面设置输入文件,把用户执行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

------------------

chmod +x pre_deal.sh

bash ./pre_deal.sh small_user.csv user_table.txt

[root@centos7 dataset]# head -10 user_table.txt
1    10001082    285259775    1    4076    2014-12-08    辽宁
2    10001082    4368907        1    5503    2014-12-12    甘肃
3    10001082    4368907        1    5503    2014-12-12    香港
4    10001082    53616768 &nb

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值