fastparquet 不提供解压“SNAPPY”

Posted

技术标签:

【中文标题】fastparquet 不提供解压“SNAPPY”【英文标题】:Decompression 'SNAPPY' not available with fastparquet 【发布时间】:2018-11-20 21:10:23 【问题描述】:

我正在尝试使用 fastparquet 打开文件,但出现错误:

RuntimeError: Decompression 'SNAPPY' not available.  Options: ['GZIP', 'UNCOMPRESSED']

我安装了以下内容并重新启动了我的解释器:

python                    3.6.5                hc3d631a_2  
python-snappy             0.5.2                    py36_0    conda-forge
snappy                    1.1.7                hbae5bb6_3  
fastparquet               0.1.5                    py36_0    conda-forge

一切顺利下载。我不知道我是否需要 snappy 或 python-snappy,所以我得到了一个没有修复并得到另一个,仍然没有成功。下载 snappy 时,我发现的所有相关问题都已修复,但我仍然遇到此错误,因为我有两个 snappy!任何帮助将不胜感激。

【问题讨论】:

这有什么更新吗? 我最终使用 pyspark 来读取我的文件,因为我没有收到任何回复。我不确定如何解决这个问题,但我的项目已经向前推进了。 对我也不起作用,即使按照@Catbuilts 的建议安装了 pyspark。我通过使用 GZIP 压缩来保存 Parquet 文件,然后切换到 pyarrow 引擎,因为这样更快。 conda install -c conda-forge python-snappy fastparquet snappy 为我工作。从 conda 基本频道安装这些无法以某种方式工作。 您好,只是想知道您是如何设置 pyspark 并获得此问题的结果的?我在使用 pandas 时遇到了同样的错误。 【参考方案1】:

以下安装非常有用

pip install fastparquet

pip install python-snappy

pip install pyarrow

【讨论】:

【参考方案2】:

您需要按照Catbuilts 的响应安装python-snappy。但是,它只是应安装在您的计算机中的 c 中 snappy implementation 的包装,此问题已在有关安装 snappy-c 的 answer 中得到解决。

假设你有一个基于DEB的系统,比如ubuntu,你可以通过:

sudo apt-get install libsnappy-dev
python3 -m pip install --user python-snappy

要测试它,您可以尝试以下脚本:

import pandas as pd
import snappy  # Not required but snappy (python-snappy) module should be reachable
from fastparquet import write, ParquetFile
df = pd.DataFrame("col1": [1,2,3,4], "col2": ["a","b","c","d"])
# df.head() # Test your initial value
write("/tmp/deleteme", df, compression="SNAPPY")
df_parquet = ParquetFile("/tmp/deleteme").to_pandas()
df_parquet.head()

【讨论】:

【参考方案3】:

运行:

pip install python-snappy
pip install pyarrow 

它应该可以解决问题。

我认为你缺少 pyarrow 包。

如果pip 有错误,请改用conda(即conda install python-snappy 或者如果您仍然有错误conda install -c conda-forge python-snappy)。

【讨论】:

安装 pyarrow 是无关紧要的。 conda install -c conda-forge python-snappy fastparquet snappy 为我工作。从基本频道安装这些无法以某种方式工作。 ^ this 是这里的解决方案;您需要来自同一频道的 python-snappy(包装器)和 snappy(C 库)

以上是关于fastparquet 不提供解压“SNAPPY”的主要内容,如果未能解决你的问题,请参考以下文章

添砖加瓦:snappy无损压缩算法

Gzip,BZip2,Lzo,Snappy总结

hbase的四种压缩格式

fastparquet 和 pyarrow 的比较?

压缩软件Snappy的安装

hadoop2.4 支持snappy