我正在尝试将 JSON 数据从 S3 加载到 Athena 中的表中。
我的 JSON 数据如下所示;
[{"a":"a_value", "b":"b_value", "my_data":{"c":"c_value", "d":1, "e":2}},
{"a":"a_value", "b":"b_value", "my_data":{"c":"c_value", "d":2, "e":3}},
{"a":"a_value", "b":"b_value", "my_data":{"c":"c_value", "d":3, "e":4}},
{"a":"a_value", "b":"b_value", "my_data":{"c":"c_value", "d":4, "e":5}},
{"a":"a_value", "b":"b_value", "my_data":{"c":"c_value", "d":5, "e":6}}]
我创建表的语句如下所示;
CREATE EXTERNAL TABLE IF NOT EXISTS `my_db`.`my_table`(
`a` string,
`b` string,
`my_data` STRUCT<
`c`: STRING,
`d`: INT,
`e`: INT>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
'ignore.malformed.json' = 'FALSE',
'dots.in.keys' = 'FALSE',
'case.insensitive' = 'TRUE',
'mapping' = 'TRUE'
)
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://myjsondata/'
TBLPROPERTIES ('classification' = 'json');
我明白了;
我真正想要的是
a | b | c | d | e |
---|---|---|---|---|
a_值 | b_值 | c_值 | 1 | 2 |
a_值 | b_值 | c_值 | 2 | 3 |
a_值 | b_值 | c_值 | 3 | 4 |
a_值 | b_值 | c_值 | 4 | 5 |
a_值 | b_值 | c_值 | 5 | 6 |
有人可以帮我看看我哪里出错了吗?