2

我在我的 PyCharm venv 中使用 Python 3.6 解释器,并尝试将 CSV 转换为 Parquet。

import pandas as pd    
df = pd.read_csv('/parquet/drivers.csv')
df.to_parquet('output.parquet')

Error-1 ImportError:无法找到可用的引擎;尝试使用:'pyarrow'、'fastparquet'。拼花支持需要 pyarrow 或 fastparquet

解决方案-1 安装了 fastparquet 0.2.1

错误 2 文件“/Users/python parquet/venv/lib/python3.6/site-packages/fastparquet/compression.py”,第 131 行,在 compress_data(算法,排序(压缩)))中 RuntimeError: Compression 'snappy'无法使用。选项:['GZIP','未压缩']

我安装了python-snappy 0.5.3但仍然出现同样的错误?我需要安装任何其他库吗?

如果我使用PyArrow 0.12.0引擎,我不会遇到这个问题。

4

1 回答 1

1

在 fastparquet 中,快速压缩是一项可选功能。

要快速检查从 csv 到 parquet 的转换,您可以执行以下脚本(仅需要 pandas 和 fastparquet):

import pandas as pd
from fastparquet import write, ParquetFile
df = pd.DataFrame({"col1": [1,2,3,4], "col2": ["a","b","c","d"]})
# df.head() # Test your initial value
df.to_csv("/tmp/test_csv", index=False)
df_csv = pd.read_csv("/tmp/test_csv")
df_csv.head() # Test your intermediate value
df_csv.to_parquet("/tmp/test_parquet", compression="GZIP")
df_parquet = ParquetFile("/tmp/test_parquet").to_pandas()
df_parquet.head() # Test your final value

但是,如果您需要使用 snappy 压缩进行写入或读取,您可以按照这个关于在 ubuntu 上安装 snappy 库的答案进行操作

于 2020-01-17T15:50:52.013 回答