hive中经常使用collect_ws做行专列,今天使用collect_ws 去除前后矛盾的数据。
demo问题描述如下:有些人对应的性别有男有女,使用collect_ws 查询正常数据
id | se'x |
1 | 男 |
2 | 女 |
3 | 男 |
4 | 男 |
1 | 女 |
2 | 女 |
hive 代码如下:
SELECT t1.id
t1.gender_set[0]
FROM
(SELECT id,
collect_ws(sex) as gender_set
FROM demo_table
GROUP BY id
)t1
WHERE size(gender_set)=1