[英]Json to Athena table gives 0 results
我有一個 json,看起來像這樣。 沒有嵌套。
[{"id": [1984262,1984260]}]
我想使用 sql 在 Athena 中創建一個表,這樣我就有一個“id”列,該列中的每一行都包含數組中的一個值。 像這樣的東西
id
1984262
1984260
我試過的
CREATE EXTERNAL TABLE table1 (
id string
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 's3://data-bucket/data.json';
和
CREATE EXTERNAL TABLE table2 (
id array<string>
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 's3://data-bucket/data.json';
和
CREATE EXTERNAL TABLE table2 (
id array<bigint>
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 's3://data-bucket/data.json';
當我預覽表格時,我看到完全沒有數據的空行。 請幫忙。
長話短說:您的 JSON 文件需要符合 JSON-SerDe。
要使用 athena 查詢 json 數據,您需要定義一個 JSON(反)序列化器。 您選擇了 Hive JSON SerDe。https://docs.aws.amazon.com/athena/latest/ug/json-serde.html
現在您的數據需要符合該序列化程序。 對於 Hive JSON SerDe,這意味着每一行需要是對應於一條記錄的單行 json。 對你來說這意味着:
{ "id" : 1984262 }
{ "id" : 1984260 }
相應的表定義是
CREATE EXTERNAL TABLE table1 (
id bigint
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 's3://data-bucket/data.json';
https://github.com/rcongiu/Hive-JSON-Serde/blob/develop/README.md
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.