Hive电商推荐系统开发实战


项目的主要流程:

创建数据仓库
数据清洗
推荐算法实现
数据ETL

1.构建数据仓库

(1)创建数据仓库

create database if not exists tmall ;
use tmall ;

创建数据仓库是基础,数据清洗才是最有挑战的地方,在数据清洗的时候,要对数据有足够的敏感性,才能做好数据清洗工作.

(2)创建原始数据表

create external table if not exits tmall.tmall20201125(uid string ,itme string ,price string ,pname string , number int ,pid string) row format delimited by '\t' stored as textFile location '/tmall/20201125';

可以通过desc来查看表的详细信息。

(3)加载数据到数据仓库
首先查看Hadoop上面有没有location ’/tmall/20201125‘,没有的话就创建

hadoop fs -ls /
hadoop fs -mkdir /tmall/20201125

上传文件到HDFS上

hadoop fs -put tmall-2020-1125.csv /tmall/20201125
hadoop fs -ls /tmall/2020/1125

这样数据就放到了Hive数据仓库中,接下来去验证数据结果。

(4)验证数据结果
这个就比较简单了,通过命令大概查看与原数据是否一致
1)统计总条数

	select count(*) from tmall.tmall_20201125

查出来的结果与原数据进行比较,原数据的数量可以通过

wc -l tmall-20201125.csv

2)查看前三行

select * from tmall.tmall_20201125 limit 3;

2.数据清洗

数据清洗是一件很麻烦的事情,在本例中,只对uid和pid两个字段进行了清洗,主要思路是通过创建临时表来完成数据的清洗,这样会麻烦一些,但是可以更好的理解内部表和外部表的区别。优点是中间结果可以在HDFS文件系统上做一个临时的备份。
(1)创建临时表

create table if not exits tmall.tmall_20201125_uid_pid(uid string,pid string) row format delimited fields terminated by '\t' stored as textfile;

(2)数据清洗详细步骤
1)初步填充、检查结果

insert overwrite table tmall.tmall_20201125_uid_pid select uid , pid from tmall.tmall_20201125

验证结果的方式就是提取出来的数据从HDFS加载到本地

hadoop fs -get /user/hive/warehouse/tmall.db/tmall_20201125_uid_pid/00000_0

这样抽取的数据就加载到了本地,通过vi查看数据中的内容,发现有一些uid字段为空,像这样的数据我们称为噪声数据,现在的目的就是将这些噪声数据过滤掉。
2)初步清洗
通过抽取正则函数来实现:regexp_extract(string subject,string patten ,int index)

3.推荐算法实现

4.数据ETL

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值