在使用aws glue在s3中使用snappy压缩保存avro文件(与gzip/bzip2压缩也有相同的错误)之后,当我尝试使用aws crawler读取athena中的数据时,得到以下错误-hive\u cannot \u open \u split:打开hive split时出错-使用org.apache.hadoop.hive.ql.io.avro.avrocontainerinputformat:不是数据文件。你知道我为什么会出现这个错误,以及如何解决这个问题吗?
ogq8wdun1#
aws glue不支持用压缩文件编写avro,尽管文档中没有明确说明。一个作业成功了,但它以错误的方式应用压缩:它不是压缩文件块,而是压缩整个错误的文件,这就是雅典娜无法查询它的原因。有计划解决这个问题,但我不知道预计到达时间。如果您能联系aws支持人员让他们知道您也遇到了这个问题,那就太好了(受影响的客户越多-越早修复)
ua4mk5z42#
谢谢您。通过在执行期间将本机spark avro jar文件附加到粘合作业,并使用本机spark read/write方法以avro格式和spark.conf.set压缩设置(“spark.sql.avro.compression.codec”,“snappy”)在spark会话创建后立即将其写入,从而避免了此问题。对我来说非常适合,也可以通过雅典娜阅读。
2条答案
按热度按时间ogq8wdun1#
aws glue不支持用压缩文件编写avro,尽管文档中没有明确说明。一个作业成功了,但它以错误的方式应用压缩:它不是压缩文件块,而是压缩整个错误的文件,这就是雅典娜无法查询它的原因。
有计划解决这个问题,但我不知道预计到达时间。
如果您能联系aws支持人员让他们知道您也遇到了这个问题,那就太好了(受影响的客户越多-越早修复)
ua4mk5z42#
谢谢您。
通过在执行期间将本机spark avro jar文件附加到粘合作业,并使用本机spark read/write方法以avro格式和spark.conf.set压缩设置(“spark.sql.avro.compression.codec”,“snappy”)在spark会话创建后立即将其写入,从而避免了此问题。
对我来说非常适合,也可以通过雅典娜阅读。