26

我正在尝试使用 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!任何帮助,将不胜感激。

4

3 回答 3

28

跑:

pip install python-snappy
pip install pyarrow 

它应该可以解决问题。

我认为你缺少pyarrow包裹。

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

于 2019-03-25T09:12:03.863 回答
13

您需要按照Catbuiltspython-snappy的响应进行安装。但是,它只是应该安装在您的计算机中的 c 中snappy 实现的包装器,此问题已在有关安装 snappy-c的答案中得到解决。

假设您有一个基于 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()
于 2020-01-17T14:45:09.920 回答
0

以下安装非常有用

pip install fastparquet

pip install python-snappy

pip install pyarrow
于 2021-04-21T20:01:21.127 回答