计算存储为 Hive 字符串列的 JSON 数组中的对象数
Posted
技术标签:
【中文标题】计算存储为 Hive 字符串列的 JSON 数组中的对象数【英文标题】:Count number of objects in JSON array stored as Hive string column 【发布时间】:2019-03-13 17:22:08 【问题描述】:我有一个 Hive 表,其中 JSON 字符串存储为列中的字符串。 像这样。
Id | Column1 (String)
1 | [k1:v1,k2:v2,k3:v3,k4:v4]
2 | [k1:v1,k2:v2]
我要统计列中 JSON 对象的数量。
Id | Count
1 | 2
2 | 1
实现这一点的查询是什么?
【问题讨论】:
【参考方案1】:如果 JSON 对象是没有嵌套结构的简单结构,那么您可以按''
拆分并使用size()-1
:
size(split(column,'[]'))-1
它可以正确处理空字符串,如果需要转换为 0,NULL 需要特殊处理:
case when column is null then 0 else size(split(column,'[]'))-1 end
【讨论】:
以上是关于计算存储为 Hive 字符串列的 JSON 数组中的对象数的主要内容,如果未能解决你的问题,请参考以下文章