我在PyCharm venv中使用Python 3.6解释器,并尝试将CSV转换为Parquet。
import pandas as pd
df = pd.read_csv('/parquet/drivers.csv')
df.to_parquet('output.parquet')
错误1 ImportError:无法找到可用的引擎;尝试使用:“ pyarrow”,“ fastparquet”。 需要镶木地板或快速镶木地板才能获得镶木地板
解决方案1 已安装fastparquet 0.2.1
错误2 在compress_data中,文件“ / Users / python parquet / venv / lib / python3.6 / site-packages / fastparquet / compression.py”,第131行 (算法,排序(压缩))) RuntimeError:压缩“快照”不可用。选项:['GZIP','UNCOMPRESSED']
我安装了 python-snappy 0.5.3 ,但仍然收到相同的错误?我需要安装其他任何库吗?
如果我使用 PyArrow 0.12.0 引擎,则不会遇到此问题。
答案 0 :(得分:1)
在快速镶木地板中,快速压缩是一项可选功能。
要快速检查从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
但是,如果您需要使用快速压缩进行写入或读取,则可以遵循此answer about installing snappy library on ubuntu。