我有一个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
要实现此目标的查询是什么?
答案 0 :(得分:1)
如果JSON对象是没有嵌套结构的简单结构,则可以除以'}'
并使用size()-1
:
size(split(column,'[}]'))-1
在此处查看测试:http://demo.gethue.com/hue/editor?editor=288202
它可以正确处理空字符串,如果需要转换为0,则NULL需要特殊处理:
case when column is null then 0 else size(split(column,'[}]'))-1 end