计算 json 对象中键的出现次数 - IMPALA/HIVE
Posted
技术标签:
【中文标题】计算 json 对象中键的出现次数 - IMPALA/HIVE【英文标题】:Count the number of occurences of a key in a json object - IMPALA/HIVE 【发布时间】:2021-07-08 14:38:26 【问题描述】:我的 Impala 表中有一个列,它是一个 map
id | key | value
1 | brm_res | 'abc':'3rr','vbg':''r45','abc':'5rr'
2 | brm_res | 'abc':'3rr','vbg':''r45','bgh':'5rr'
3 | brm_res | 'abc':'3rr','vbg':''r45','tyu':'5rr'
4 | brm_res | 'abc':'3rr','vbg':''r45','yuo':'5rr'
如上例所示,对于特定的 id(id=1) 和 key(brm_res),value 列中有 (abc) key 的 2 个条目。如何找到这个。
请指导。提前致谢。
【问题讨论】:
【参考方案1】:可以计算初始字符串的字符长度,去掉所有出现的key,计算长度差,除以key的长度,就是出现的次数。像这样的东西(未测试):
(char_length(value)-char_length(replace(value, "\'abc\':", ''))) div char_length("\'abc\':");
【讨论】:
这可能有效,我们也可以使用length()
。但是 OP 想知道某个键列出现了多少次,abc
只是一个例子,它可以是任何东西。
@KoushikRoy 是的,这个表达式返回某个键列出现了多少次,可以用别的东西代替abc
以上是关于计算 json 对象中键的出现次数 - IMPALA/HIVE的主要内容,如果未能解决你的问题,请参考以下文章
此 JSON 对象中键的类型是啥 yourVariable: "nothing yet"
Appsetting.json 读取控制器类中键的值,空白?