выборка данных из 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 достать, прошу хелпа у знающих людей..