Как загрузить файл CSV в Amazon Athena, содержащий поле JSON - PullRequest
0 голосов
/ 14 мая 2018

У меня есть CSV (разделенный табуляцией) в s3, который необходимо запросить в поле JSON.

uid\tname\taddress
1\tmoorthi\t{"rno":123,"code":400111}
2\tkiranp\t{"rno":124,"street":"kemp road"}

Как я могу запросить эти данные в Amazon Athena?

Я должен быть в состоянии запросить как:

select uid
from table1
where address['street']="kemp road";

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете попробовать использовать команду json_extract().

С Извлечение данных из JSON - Amazon Athena :

У вас могут быть исходные данные, содержащие строки в кодировке JSON, которые вы не обязательно хотите десериализовать в таблицу в Афине. В этом случае вы все равно можете выполнять операции SQL над этими данными, используя функции JSON, доступные в Presto.

WITH dataset AS (
  SELECT '{"name": "Susan Smith",
           "org": "engineering",
           "projects": [{"name":"project1", "completed":false},
           {"name":"project2", "completed":true}]}'
    AS blob
)
SELECT
  json_extract(blob, '$.name') AS name,
  json_extract(blob, '$.projects') AS projects
FROM dataset

В этом примере показано, как json_extract() можно использовать для извлечения полей из JSON. Таким образом, вы могли бы быть в состоянии сделать что-то вроде:

select uid
from table1
where json_extract(address, '$.street') = "kemp road";
...