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”的主要内容,如果未能解决你的问题,请参考以下文章