使用pyarrow的Python错误-ArrowNotImplementedError:未构建对编解码器“snappy”的支持

使用 Python、Parquet 和 SparkArrowNotImplementedError: Support for codec 'snappy' not built升级到pyarrow=3.0.0. 我以前没有这个错误的版本是pyarrow=0.17. 该错误出现在 中pyarrow=1.0.1但确实出现在pyarrow=2.0.0. 这个想法是使用 Snappy 压缩将 Pandas DataFrame 编写为 Parquet 数据集(在 Windows 上),然后使用 Spark 处理 Parquet 数据集。

import numpy as np
import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq

df = pd.DataFrame({
    'x': [0, 0, 0, 1, 1, 1], 
    'a': np.random.random(6), 
    'b': np.random.random(6)})
table = pa.Table.from_pandas(df, preserve_index=False)
pq.write_to_dataset(table, root_path=r'c:/data', partition_cols=['x'], flavor='spark')

回答

pyarrow您安装的包不是来自conda-forge并且它似乎与 上的包不匹配PYPI。我做了更多的研究,pypi_0只是意味着该软件包是通过pip. 这并不意味着它实际上来自 PYPI。

我不太确定这是怎么发生的。您也许可以检查您的 conda 日志 ( envs/YOUR-ENV/conda-meta/history) 但是,鉴于这是从 conda 外部安装的,我不确定其中是否会有任何有意义的信息。也许您尝试在版本升级到 3 之后并且在上传轮子之前安装 Arrow,因此您的系统退回到从源代码构建?


以上是使用pyarrow的Python错误-ArrowNotImplementedError:未构建对编解码器“snappy”的支持的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>