hive从嵌套数组中提取数据

sd2nnvve  于 2021-06-26  发布在  Hive
关注(0)|答案(4)|浏览(598)

嗨需要从数组中提取数据,我用雅典娜

  1. create external table test
  2. (
  3. customer string
  4. )
  5. Location 'something-something'

这张表的单行是, select * from customer limit 1 ```
{ "ID": "XXXX", "USerDate": { "items": [{ "Name": "Nir", "CLG": "NPT", "Place": "CBE", "Any Group": {}, "Interest": { "items": [{ "Games": "Cricket", "Music": "AR" }] }, "Others": {} }] } }

  1. 我需要像这样提取行
  2. |id |名称|地点|游戏|音乐|
  3. |-----|---------|
v64noz0r

v64noz0r1#

  1. select json_extract_scalar(customer,'$.ID') as ID
  2. ,json_extract_scalar(i1.item,'$.Name') as Name
  3. ,json_extract_scalar(i1.item,'$.Place') as Place
  4. ,json_extract_scalar(i2.item,'$.Games') as Games
  5. ,json_extract_scalar(i2.item,'$.Music') as Music
  6. from test
  7. cross join unnest (cast(json_extract(customer,'$.USerDate.items')
  8. as array(json))) as i1 (item)
  9. cross join unnest (cast(json_extract(i1.item,'$.Interest.items')
  10. as array(json))) as i2 (item)
  11. ;
  1. ID | Name | Place | Games | Music
  2. ------+------+-------+---------+-------
  3. XXXX | Nir | CBE | Cricket | AR
cuxqih21

cuxqih212#

-|

相关问题