AWS Glue - Avro snappy 压缩读取错误 - HIVE_CANNOT_OPEN_SPLIT:打开 Hive 拆分时出错

Posted

技术标签:

【中文标题】AWS Glue - Avro snappy 压缩读取错误 - HIVE_CANNOT_OPEN_SPLIT:打开 Hive 拆分时出错【英文标题】:AWS Glue - Avro snappy compression read error - HIVE_CANNOT_OPEN_SPLIT: Error opening Hive split 【发布时间】:2018-08-03 04:56:40 【问题描述】:

使用 AWS Glue 在 S3 中使用 snappy 压缩保存 Avro 文件(gzip/bzip2 压缩也同样的错误)后,当我尝试使用 AWS Crawler 读取 athena 中的数据时,我收到以下错误 - HIVE_CANNOT_OPEN_SPLIT: Error opening Hive拆分 - 使用 org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat:不是数据文件。知道为什么会出现此错误以及如何解决此问题吗?

【问题讨论】:

考虑为您的问题添加更多信息。 【参考方案1】:

谢谢。

通过在执行期间将本机 spark avro jar 文件附加到胶水作业并使用本机 spark 读/写方法以 avro 格式写入它们并用于压缩设置 spark.conf.set("spark.sql.avro .compression.codec","snappy") 一旦创建了 spark 会话。

非常适合我,也可以通过 Athena 阅读。

【讨论】:

我遇到了同样的问题,你能分享你的 jar 文件和任何其他关于配置 Glue 作业的帮助【参考方案2】:

AWS Glue 不支持使用压缩文件编写 avro,尽管文档中没有明确说明。作业成功,但它以错误的方式应用压缩:它不是压缩文件块,而是压缩整个错误的文件,这就是 Athena 无法查询它的原因。

有解决此问题的计划,但我不知道 ETA。

如果您可以联系 AWS 支持让他们知道您也遇到了这个问题,那就太好了(更多客户受到影响 - 尽快解决)

【讨论】:

现在是 2022 年,这仍然是事实。 Glue Studio 很乐意鼓励您向 Avro 添加压缩,然后 Athena 将无法读取该表。

以上是关于AWS Glue - Avro snappy 压缩读取错误 - HIVE_CANNOT_OPEN_SPLIT:打开 Hive 拆分时出错的主要内容,如果未能解决你的问题,请参考以下文章

AWS Glue CDK - 创建作业类型 Spark (Glue 2.0)

在 pig 中读取 snappy 压缩输入

HBase集群配置Snappy压缩算法

aws glue / pyspark - 如何使用 Glue 以编程方式创建 Athena 表

AWS Glue ETL 作业中的 Boto3 Glue

AWS Glue 布尔转换