簡體   English   中英

Python Pandas 使用 Fastparquet 將 CSV 轉換為 Parquet

[英]Python Pandas to convert CSV to Parquet using Fastparquet

我在我的 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 是鑲木地板支持所必需的

方案一安裝fastparquet 0.2.1

錯誤 2文件“/Users/python parquet/venv/lib/python3.6/site-packages/fastparquet/compression.py”,第 131 行,在 compress_data(算法,排序(壓縮)))運行時錯誤:壓縮“活潑”無法使用。 選項:['GZIP', '未壓縮']

我安裝了python-snappy 0.5.3但仍然出現相同的錯誤? 我需要安裝任何其他庫嗎?

如果我使用PyArrow 0.12.0引擎,我不會遇到這個問題。

在 fastparquet 中 snappy 壓縮是一個可選功能。

要快速檢查從 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 庫的答案

我使用了以下版本: python 3.10.9 fastparquet==2022.12.0 pandas==1.5.2

這段代碼對我來說毫無意義

import pandas as pd

df = pd.read_csv('/parquet/drivers.csv')
df.to_parquet('output.parquet', engine="fastparquet")

我建議您放棄python 3.6 ,因為它已經過時並且不再受支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM