【问题标题】:Getting HIVE_CURSOR_ERROR while querying the table in Athena在 Athena 中查询表时获取 HIVE_CURSOR_ERROR
【发布时间】:2020-10-31 08:02:54
【问题描述】:

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

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

错误信息:



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

【问题讨论】:

标签: amazon-web-services amazon-s3 aws-glue amazon-athena


【解决方案1】:

您可以忽略格式错误的 json,这将确保您可以查询表,如 Best Practices for Reading JSON Data by AWS 中所述:

...
 ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
 WITH SERDEPROPERTIES ('ignore.malformed.json' = 'true')
 LOCATION 's3://bucket/path/';

我会从这个开始,以确保至少可以读取一些数据。

Athena 还提供使用"$path" 显示记录的基础文件:

SELECT "$path" FROM "my_database"."my_table"

这可能会打开检查每个文件有多少行的可能性,然后检查 Athena 无法完全读取哪个文件。

【讨论】:

    猜你喜欢
    • 2017-11-22
    • 1970-01-01
    • 2014-11-12
    • 2022-06-28
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多