如何从 json 数组中获取 hive 中的字符串列表

Posted

技术标签:

【中文标题】如何从 json 数组中获取 hive 中的字符串列表【英文标题】:How to get list of Strings in hive from a json array 【发布时间】:2021-05-06 22:33:28 【问题描述】:

我有以下 json 字符串


  "userId": 12345,
  "eligibleCountries": [
    
      "Level": "COUNTRY",
      "Name": "MX"
    ,
    
      "Level": "COUNTRY",
      "Name": "US"
    ,
    
      "Level": "COUNTRY",
      "Name": "CA"
    
  ]

我想得到

userID countries
12345 ["MX","US","CA"]

我可以使用GET_JSON_OBJECT 获取用户ID,但对于我们不能使用GET_JSON_OBJECT 的国家/地区列表。 我们如何在 hive 中获得它。

【问题讨论】:

【参考方案1】:

你可以使用[*]

select get_json_object('
  "userId": 12345,
  "eligibleCountries": [
    
      "Level": "COUNTRY",
      "Name": "MX"
    ,
    
      "Level": "COUNTRY",
      "Name": "US"
    ,
    
      "Level": "COUNTRY",
      "Name": "CA"
    
  ]
','$.eligibleCountries[*].Name') as countries;

【讨论】:

以上是关于如何从 json 数组中获取 hive 中的字符串列表的主要内容,如果未能解决你的问题,请参考以下文章

计算存储为 Hive 字符串列的 JSON 数组中的对象数

在 Hive 中,这种模式如何从 json 数组中识别嵌套的 json?

如何从数组中的字符串数组中获取每个值

如何从 JSON 数组中获取字符串数组? [关闭]

如何从 JSON 数组中的 JSON 对象中的单个值获取数据?

如何从 alamofire 中的 json 数组中获取对象?