Hive对数组的映射不同

时间:2014-02-24 10:28:35

标签: count hive words

我是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;

但它在每一行都很重要。 有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

爆炸UDTF对于将嵌套数据结构转换为使用普通SQL语句的普通表非常有用。由于你有一组地图,你需要使用两次爆炸。

select count(distinct value) from
    ( select explode(col) from
            ( select explode(words) from mytable ) subquery1
    ) subquery2
where
    key = "words_value";