1、表结构
name | constellation | blood_type |
---|---|---|
孙悟空 | 白羊座 | A |
大海 | 射手座 | A |
宋宋 | 白羊座 | B |
猪八戒 | 白羊座 | A |
凤姐 | 射手座 | A |
2、person_info.txt
孙悟空 白羊座 A
大海 射手座 A
宋宋 白羊座 B
猪八戒 白羊座 A
凤姐 射手座 A
3、创建表
hive> create table person_info(
name string,
constellation string,
blood_type string)
row format delimited fields terminated by "\t";
4、导入数据
hive> load data local inpath “person_info.txt” into table person_info;
5、把星座和血型一样的人归类到一起
孙悟空 白羊座 A
大海 射手座 A
宋宋 白羊座 B
猪八戒 白羊座 A
凤姐 射手座 A
↓
白羊座,A 孙悟空|猪八戒
白羊座,B 宋宋
射手座,A 大海|凤姐
HQL语句
hive> select
t1.base,
concat_ws('|', collect_set(t1.name)) name
from
(select
name,
concat(constellation, ",", blood_type) base
from
person_info) t1
group by
t1.base;