我是Hive的新手,我正在尝试从我的整个词列中计算不同的words_values 。
ID ---------------------------词语
435400064446779392 [{“words_value”:“i”,“words_id”:“1”},{“words_value”:“讨厌”,“words_id”:“2”}]
请注意,words列是一个数组。我有更多的行,但上面是一个例子。 我试过了:
SELECT words.words_value,count(words.words_value) from T1 GROUP BY words.words_value WITH ROLLUP;
但它在每一行都很重要。 有没有人有任何想法?
答案 0 :(得分:1)
爆炸UDTF对于将嵌套数据结构转换为使用普通SQL语句的普通表非常有用。由于你有一组地图,你需要使用两次爆炸。
select count(distinct value) from
( select explode(col) from
( select explode(words) from mytable ) subquery1
) subquery2
where
key = "words_value";