0

我正在尝试使用 pyarrow 将镶木地板转换为 csv 文件。

df = pd.read_parquet('test.parquet')

上面的代码适用于从 github 下载的示例 parquet 文件。

但是当我尝试使用实际的大型镶木地板文件时,会出现以下错误。

File "_parquet.pyx", line 734, in pyarrow._parquet.ParquetReader.read_all
  File "error.pxi", line 79, in pyarrow.lib.check_status
pyarrow.lib.ArrowIOError: Arrow error: IOError: GZipCodec failed: incorrect header check

我也尝试使用 fastparquet 和 pyspark 读取 parquet 文件。但我收到了类似的 GZip 错误。

我知道这是压缩或未压缩的镶木地板文件,与我下载的样本不同。

请建议任何代码或提供任何其他工具将此类镶木地板文件转换为 csv 文件将有很大帮助。谢谢。

编辑:与 parquet 中通常的字符串值相比,这些 parquet 文件似乎是二进制格式。有没有办法读取二进制镶木地板?

4

1 回答 1

0

这听起来很像您的 Parquet 文件已损坏。PySpark、Arrow 和 fastparquet 是 Parquet 格式的独立实现,因此很可能不是阅读器中的错误,而是损坏的文件。

如果没有更多信息(例如该文件是如何编写的),唯一的答案是您将无法阅读它。

否则pd.read_parquet(..).to_csv(..)足以将 Parquet 文件转换为 CSV。

于 2018-08-13T19:16:41.310 回答