[英]Python Dask 'Metadata parse failed' error when trying to read_parquet
我有一個包含多個.parquet文件的數據文件夾,這些文件是使用熊貓和pyarrow轉換的.csv文件。 所有文件的日期時間索引名為“ Timestamp”,以及五個名為“ Open”,“ High”,“ Low”,“ Close”,“ Volume”的列,所有列均具有相同的dtype = int32。
我只想將它們全部加載到單個Dask.Dataframe中。 這是一個代碼片段。
import os
import pyarrow as pa
import pyarrow.parquet as pq
import dask.dataframe as dd
user = os.getlogin()
data_path = 'C:\\Users\\%s\\data\\' % user
ds = dd.read_parquet(data_path) # error
ds = dd.read_parquet(data_path, index='Timestamp') # error
但是這樣做會返回錯誤“ fastparquet.util.ParquetException:元數據解析失敗:#data_path”
因此,我嘗試手動訪問單個文件的元數據。
import glob
files = ['%s' % s for s in glob.glob(data_path + '*.parquet')]
for file in files:
print(pq.read_metadata(file)) # no error returned
ds = dd.read_parquet(files) # error
ds = dd.read_parquet(files, index='Timestamp') # error
怎么了?
要使用箭頭而不是fastparquet讀取數據,您將需要
ds = dd.read_parquet(data_path, engine='arrow')
由於數據是用箭頭寫入的,因此應該可以使用。
該數據不 fastparquet加載是關系和可能的錯誤。 我注意到您正在使用Windows路徑,因此這可能是問題所在。 我鼓勵您嘗試使用https://github.com/dask/fastparquet/pull/232 ,看看它是否可以為您解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.