Amazon web services 在Athena中查询表时获取配置单元游标错误

Amazon web services 在Athena中查询表时获取配置单元游标错误,amazon-web-services,amazon-s3,aws-glue,amazon-athena,Amazon Web Services,Amazon S3,Aws Glue,Amazon Athena,看起来这是一个已知的问题,但我的情况有点不同。我的Athena表的数据源是一个s3 bucket,我有一个爬虫程序任务读取它来构建表。Serde序列化库自动设置为org.openx.data.jsonserde.jsonserde 除了修复它,我还想知道如何找到导致此问题的条目或s3文件。因为我不能手动逐个检查s3文件,它太大了,我不能查询雅典娜。谢谢 错误消息: HIVE_CURSOR_ERROR: Row is not a valid JSON Object - JSONExceptio

看起来这是一个已知的问题,但我的情况有点不同。我的Athena表的数据源是一个s3 bucket,我有一个爬虫程序任务读取它来构建表。Serde序列化库自动设置为
org.openx.data.jsonserde.jsonserde

除了修复它,我还想知道如何找到导致此问题的条目或s3文件。因为我不能手动逐个检查s3文件,它太大了,我不能查询雅典娜。谢谢

错误消息:



HIVE_CURSOR_ERROR: Row is not a valid JSON Object - JSONException: Illegal escape. at 99 [character 100 line 1]


您可以忽略格式错误的json,这将确保您可以查询表,如中所述:

首先,我要确保至少可以读取一些数据

Athena还提供通过以下方式显示记录的底层文件:


这可能会打开检查每个文件有多少行的可能性,然后检查哪个文件不能被雅典娜完全读取。

更新:我可以通过这里的解决方案跳过这些坏数据:但仍然不知道如何识别哪里出错
...
 ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
 WITH SERDEPROPERTIES ('ignore.malformed.json' = 'true')
 LOCATION 's3://bucket/path/';
SELECT "$path" FROM "my_database"."my_table"