Json 雅典娜没有填充表

Json 雅典娜没有填充表,json,amazon-web-services,amazon-s3,amazon-athena,Json,Amazon Web Services,Amazon S3,Amazon Athena,我试图从S3存储桶中存在的JSON文件在Athena中创建一个表。 以下是查询- CREATE EXTERNAL TABLE `sample_tablename` ( `sample_column1` string, `sample_column2` integer ) PARTITIONED BY ( `sample_column3` string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' STORED AS INPUTFO

我试图从S3存储桶中存在的JSON文件在Athena中创建一个表。 以下是查询-

CREATE EXTERNAL TABLE `sample_tablename` (
`sample_column1` string,
`sample_column2` integer
)
PARTITIONED BY ( 
`sample_column3` string)
ROW FORMAT SERDE
'org.openx.data.jsonserde.JsonSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
LOCATION
's3://bukcet_name/folder_name'
TBLPROPERTIES (
'classification'='json')
我的JSON文件看起来像-

[{"sample_column1": "abcd","sample_column2": "efgh"},{"sample_column1": "ijkl","sample_column2": "mnop"}]

该表正在使用分区形成,但该表为空。没有错误消息。可能出了什么问题?

我认为预期的格式是单独的JSON记录行,如下所示:

{“样本列1”:“abcd”,“样本列2”:“efgh”}
{“样本列1”:“ijkl”,“样本列2”:“mnop”}
请参阅:

您需要在分区表上运行:

MSCK REPAIR TABLE命令扫描文件系统(如Amazon S3),查找在创建表后添加到文件系统或从文件系统中删除的与配置单元兼容的分区。该命令更新目录中有关分区及其关联数据的元数据

这在报告中也提到

创建包含分区的表后,运行由MSCK REPAIR table子句组成的后续查询以刷新分区元数据,例如,MSCK REPAIR table cloudfront_logs;。对于不兼容配置单元的分区,请使用ALTER TABLE ADD PARTITION加载分区,以便查询数据


之后,您很可能会遇到John所指的格式问题。

尝试过这个。表仍然为空。我建议您运行该文章中的示例代码,以便可以重现它们的查询输出,然后用您自己的数据替换示例数据。这将有助于确定造成差异的原因。