выборка данных из S3 хранилища

есть у меня в S3 данные в виде массива, пример:

{
  "name": "responses",
  "users": [
    {
      "id": "znfj43yw",
      "name": "Mark",
      "link": "localhost:7777",
      "isTest": true
    },
    {
      "id": "g45h4h4f",
      "name": "Lens",
      "link": "localhost:7777",
      "isTest": true
    }
  ]
} 

создаю таблицу:

CREATE EXTERNAL TABLE qq_loq (
offerrequest struct<offers:array<struct<id:string,name:string,url:string,isTest:boolean>>>)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES ('ignore.malformed.json'='true')
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
          OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
          LOCATION 's3://путь/'
          TBLPROPERTIES ('has_encrypted_data'='false')

Делаю запрос этих данных

select  responses.users from  qq_loq 

и получаю вот такое:

[{id=znfj43yw, name=Mark, url=localhost:7777, istest=true}, {id=g45h4h4f, name=Lens, url=localhost:7777, istest=true}]

и ладно, пусть как-то живет, но как отсюда доставать сами айдишники и неймы?

Пробовал вот так:

select  responses.users.id from  qq_loq

но тут схема явно не рабочая, потому что айдишников же несколько таких и не строка. Так же это не JSON что бы через scalar достать, прошу хелпа у знающих людей..


Ответы (0 шт):