Hive 创建不包含重复的 Json 数组

Posted

技术标签:

【中文标题】Hive 创建不包含重复的 Json 数组【英文标题】:HIve Create Json Array that not contains duplicate 【发布时间】:2017-04-13 11:28:22 【问题描述】:

我想创建一个不包含重复的 json 数组。我曾使用 LATERAL VIEW EXPLODE 来破坏初始 Array ,现在我想对收到的字符串 json 进行分组,并根据一个键创建合并的 json。 例如,如果我有: Col1:

"key" : ke , "value" : 1 
"key" : ke , "value" : 2 
"key" : ke1 , "value" : 5 

我想要

"key" : ke , "value" : 3 
"key" : ke1 , "value" : 5 

你能帮帮我吗?

【问题讨论】:

这不是一个有效的 JSON。 每个字符串在列中的不同行上 字符串值应该是合格的 【参考方案1】:
select      concat('"key":"',jt.key,'","value":',sum(jt.value),'')

from        mytable t
            lateral view json_tuple(Col1, 'key', 'value') jt as key,value

group by    jt.key
;

【讨论】:

如果我想在一个更复杂的结构中添加这个,有更多的列,我可以只对某个列使用 GROUP BY 吗? 请为此打开一个新问题 str 将是表格中的一行? 是的,现在改成Col1

以上是关于Hive 创建不包含重复的 Json 数组的主要内容,如果未能解决你的问题,请参考以下文章

使用JSON.Net反序列化包含字典的字节数组[重复]

php检查数组中的特定值是不是包含大于0的值[重复]

在 Hive 中,这种模式如何从 json 数组中识别嵌套的 json?

PHP - 包含重复项的 YouTube API 数组

如何创建包含不同类型数组的swagger架构

处理古怪的 API JSON 响应体 --- 单例与数组 [重复]