[英]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.