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)