Hive Sql查询从Json数组获取Json对象

时间:2018-08-23 10:47:23

标签: json hive hiveql

“内容”列中有以下格式的json:

  {  "identifier": [
        {
          "type": {
            "coding": [
              {
                "code": "MRN",
              }
            ]
          },
          "value": "181"
        },
        {
          "type": {
            "coding": [
              {
                "code": "PID",
              }
            ]
          },
          "value": "5d3669b0"
        },
        {
          "type": {
            "coding": [
              {
                "code": "IPN",
              }
            ]
          },
          "value": "41806"
        }
      ]}

我必须运行一个配置单元查询,以获取等于“ MRN”的代码的“值”。 我编写了以下查询,但未提供预期的值:

select get_json_object(content,'$.identifier.value')as Mrn from Doctor where get_json_object(content,'$.identifier.type.coding.code') like '%MRN%'

我不想给出特定的数组位置,例如:

select get_json_object(content,'$.identifier[0].value')as Mrn from Doctor where get_json_object(content,'$.identifier[0].type.coding.code') like '%MRN%'

由于json是随机创建的,并且位置并非总是固定的。

1 个答案:

答案 0 :(得分:1)

给出[*]避免给出位置。

select get_json_object(content,'$.identifier[*].value')as Mrn from Doctor where get_json_object(content,'$.identifier[*].type.coding.code') like '%MRN%'