count - Hive 对 map 数组的不同计数

标签 count hive words

我是 Hive 新手,我正在尝试从整个单词列中计算不同的单词值

id-------------------------------------单词
435400064446779392 [{"words_value":"i","words_id":"1"},{"words_value":"讨厌","words_id":"2"}]

请注意,words 列是一个数组。我有更多的行,但上面是一个例子。 我尝试过:

从 T1 GROUP BY Words.words_value AND ROLLUP 中选择 Words.words_value,count(words.words_value);

但它在每一行中都很重要。 有人知道吗?

最佳答案

explode UDTF 对于将嵌套数据结构转换为可使用普通 SQL 语句的普通表非常有用。由于您有一个 map 数组,因此您需要使用explode 两次。

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

关于count - Hive 对 map 数组的不同计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21985053/

相关文章:

mysql - 将 mysql 与 hive 结合使用

C++文本分隔和计数单词

ruby-on-rails-3 - Rails 3 按孙子计数的订单记录

sql - PostgreSQL - 选择一列和两列中唯一值的计数

python - 无损添加或合并python字典

sql-server - SQL 查询中的两个转义字符

scala - 如何在 Scala 中从 Spark 检索和更新 HBase 表

hadoop - Hive Web 界面无法正常工作 - HTTP 错误 500

java - 需要帮助在 Java 中将数字转换为单词

Php - 以单词形式返回 count()