簡體   English   中英

嘗試read_parquet時發生Python Dask“元數據解析失敗”錯誤

[英]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.

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