【发布时间】:2017-07-26 21:28:45
【问题描述】:
我正在尝试从源自 Amazon DynamoDB 的 JSON 文件中获取所有属性。现在我将文件发送到 Amazon S3 存储桶并使用 Amazon Athena 读取它。这是来自 JSON 文件的示例,
{
"Items": [
{
"payload": {
"phase": "T",
"tms_event": "2017-03-16 18:19:50",
"id_UM": 0,
"num_severity_level": 0,
"event_value": 1,
"int_status": 0
},
"deviceId": 6,
"tms_event": "2017-03-16 18:19:50"
}
]
}
我希望在单独的字段中获取 deviceId、tms_event、phase、id_UM 和 event_value。这是我拥有的表格,但它没有分隔字段,
CREATE EXTERNAL TABLE IF NOT EXISTS default.iot_table (
`Items` ARRAY<
STRUCT<
`payload`: STRUCT<`phase`: string, `tms_event`: string, `id_UM`: int, `num_severity_level`: int, `event_value`: int, `int_status`: int>,
`deviceId`: int,
`tms_event`: string
>
>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1'
) LOCATION 's3://iot-logging/'
TBLPROPERTIES ('has_encrypted_data'='false')
谢谢
【问题讨论】:
-
你错过了什么?表结构与您的 JSON 匹配,那么“它不分隔字段”是什么意思?
-
当我运行查询时,payload 属性在一个字段上显示所有 JSON 格式的值,我想在他自己的字段中获取每个值。也许是我正在运行的查询的问题
标签: json amazon-web-services amazon-s3 amazon-dynamodb amazon-athena