减压'SNAPPY'不适用于fastparquet

B. *_*arp 8 python-3.x snappy fastparquet

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

RuntimeError: Decompression 'SNAPPY' not available.  Options: ['GZIP', 'UNCOMPRESSED']
Run Code Online (Sandbox Code Playgroud)

我已安装以下设备,并重新启动了我的解释器:

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
Run Code Online (Sandbox Code Playgroud)

一切下载顺利。我不知道我是否需要snappy或python-snappy,所以我得到了一个没有解决办法,却得到了另一个,但仍然没有成功。下载快照时,我发现的所有相关问题均已修复,但是使用两个快照时,仍然出现此错误!任何帮助,将不胜感激。

Cat*_*lts 26

跑:

pip install python-snappy
pip install pyarrow 
Run Code Online (Sandbox Code Playgroud)

它应该可以解决问题。

我认为你缺少pyarrow包裹。

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

  • 安装 pyarrow 无关紧要。```conda install -c conda-forge python-snappy fastparquet snappy``` 对我有用。从基本频道安装这些内容不知何故不起作用。 (6认同)
  • ^ **这**是这里的解决方案;您需要来自同一通道的 python-snappy (包装器)和 snappy (C 库) (2认同)

Mar*_*nal 11

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

假设您有一个基于 DEB 的系统,例如 ubuntu,您可以通过以下方式获得它:

sudo apt-get install libsnappy-dev
python3 -m pip install --user python-snappy
Run Code Online (Sandbox Code Playgroud)

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

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()
Run Code Online (Sandbox Code Playgroud)