【问题标题】:Count number of objects in JSON array stored as Hive string column计算存储为 Hive 字符串列的 JSON 数组中的对象数
【发布时间】: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  

实现这一点的查询是什么?

【问题讨论】:

    标签: json hive hiveql


    【解决方案1】:

    如果 JSON 对象是没有嵌套结构的简单结构,那么您可以按'}' 拆分并使用size()-1

    size(split(column,'[}]'))-1
    

    它可以正确处理空字符串,如果需要转换为 0,NULL 需要特殊处理:

       case when column is null then 0 else  size(split(column,'[}]'))-1 end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      相关资源
      最近更新 更多