use*_*906 6 python snappy parquet
如何在 python 3.5 中打开 .snappy.parquet 文件?到目前为止,我使用了这个代码:
import numpy
import pyarrow
filename = "/Users/T/Desktop/data.snappy.parquet"
df = pyarrow.parquet.read_table(filename).to_pandas()
Run Code Online (Sandbox Code Playgroud)
但是,它给出了这个错误:
AttributeError: module 'pyarrow' has no attribute 'compat'
Run Code Online (Sandbox Code Playgroud)
PS我以这种方式安装了pyarrow:
pip install pyarrow
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用 pandas 将 snppay.parquet 文件读入 python pandas 数据帧。
import pandas as pd
filename = "/Users/T/Desktop/data.snappy.parquet"
df = pd.read_parquet(filename)
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,并按照https://github.com/dask/fastparquet/issues/366解决方案中提出的解决方案设法解决了它。
1) 使用 conda install 安装 python-snappy(由于某些原因使用 pip install,我无法下载它)
2) 添加 snappy_decompress 函数。
from fastparquet import ParquetFile
import snappy
def snappy_decompress(data, uncompressed_size):
return snappy.decompress(data)
pf = ParquetFile('filename') # filename includes .snappy.parquet extension
dff=pf.to_pandas()
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这个错误AttributeError: module 'pyarrow' has no attribute 'compat'有点误导。要在实例to_pandas()上执行该函数,pyarrow.Table您需要安装 pandas。上述错误是缺少需求的症状。
pandas 并不是硬性要求,pyarrow因为它的大部分功能只需使用 Python 内置插件和 NumPy 即可使用。因此,包含 pandas 的用户pyarrow可以使用它,而无需预先安装 pandas。