Amazon web services 在Athena中查询表时获取配置单元游标错误
看起来这是一个已知的问题,但我的情况有点不同。我的Athena表的数据源是一个s3 bucket,我有一个爬虫程序任务读取它来构建表。Serde序列化库自动设置为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
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"