若发现文章有误,欢迎提出宝贵的建议,敬请指教,感谢
运行环境
- Docker-ce 20.10.11
- 完全分布式集群
- JDK8
- MySQL 5.7
- Hadoop3.3.0
- Hive3.1.2 on MapReduce
数据说明
测试数据获取地址:点击查看
数据说明:
video
字段 | 类型 | 描述 |
---|---|---|
videoId | String, | 视频唯一ID ,11位字符串 |
uploader | String | 上传视频的用户名 |
age | Int | 视频在平台上的天数 |
category | Array< String > | 上传视频指定的视频分类 |
length | Int | 整型数字表示的视频长度,单位秒 |
views | Int | 视频被浏览的次数 |
rate | Double | 视频的评分,满分上限为5分 |
Ratings | Int | 视频的流量,整型数字 |
comments | Int | 一个视频的整数评论数 |
relatedId | Array< String > | 相关视频的ID,不超过20个 |
数据说明:1.txt、2.txt、3.txt、4.txt、5.txt是同一种数据,数据量依次递增,内容以"\t" 制表符分割,同一个字段,比如category
,视频分类,以"&"符号分割
user
字段 | 类型 | 描述 |
---|---|---|
uploader | String | 上传者用户名 |
videos | Int | 上传视频数 |
friends | Int | 朋友数量 |
数据说明:user.txt,大小为35, 643 KB,以"\t"制表符分割
在Hive中创建的表:
原始表:v_ori, v_user_ori
最终表: v_orc, v_user_orc
一、Hive SQL 创建测试表
1.1 原始表
创建原始电影表 v_ori
CREATE TABLE v_ori (
videoId string, uploader string, age int,
category array<string>, length int,
views int, rate float, ratings int, comments int,
relatedId array<string>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"
COLLECTION ITEMS TERMINATED BY "&"
STORED AS textfile;
创建原始用户数据表: v_user_ori
CREATE TABLE v_user_ori(
uploader string,
videos int,
friends int
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t" STORED AS textfile;
1.2 orc压缩表
创建 orc 存储格式带 snappy 压缩的表:
v_orc 电影表
CREATE TABLE v_orc(
videoId string,
uploader string,
age int,
category array<string>,
length int,
views int,
rate float,
ratings int,
comments int,
relatedId array<string>
)
STORED AS orc
TBLPROPERTIES(&