无法使用pyarrow从目录中读取实木复合地板文件

我正在使用pyarrow(0.12.1)从s3中读取实木复合地板对象

这是我正在使用的代码:

s3 = s3fs.S3FileSystem()
base_pya_dataset = Parquetdataset('s3://bucket1/source/schema/table_name/2019_10_31_19_59_16',filesystem=s3)

尝试创建Parquetdataset时出现以下错误:

"errorMessage": "Corrupted file,smaller than file footer","errorType": "ArrowIOError",

我在做什么错?让我感到困惑的是,我之前(昨天)进行过这项工作。除了我正在使用的镶木地板文件外,我发现的所有内容都没有改变。实木复合地板文件必须是某种类型的吗?

我已经尝试过: -添加尾随正斜杠

当我将其输入到一个文件的路径时,它可以工作。显然,尝试从我提供的目录中获取文件的方式存在问题。

net00111 回答:无法使用pyarrow从目录中读取实木复合地板文件

该错误可能意味着它正在尝试读取不是Parquet的文件。

我建议升级到最新版本的pyarrow(0.15.1),然后重试。自0.12.1以来,已经有了很多发展,有可能您遇到的任何一个角落都已得到解决。

,

经过更多测试后,似乎ParquetDataset功能不能简单地作用于目录中的Parquet文件(甚至单个文件)(即使它们都具有相同的架构)。当我将分区的实木复合地板文件放在目录(从spark输出)中时,没有收到错误。

即使我从spark下载那些分区的镶木地板文件,然后将它们重新升级到s3,读取也会失败。我无法想象下载镶木地板文件然后将其重新上传到s3会导致架构混乱到引发异常的地步(尤其是因为我没有打开或修改实际的镶木地板文件)。

这很奇怪,因为依靠它使人感到不安。

本文链接:https://www.f2er.com/3136406.html

大家都在问