如何解决Dask read_parquet用于嵌套拼花文件
我有许多csv文件(超过90个)对于内存(每个压缩文件〜0.5gb)太大,它们都具有相同的架构。我想转换为镶木地板,然后使用dask进行时间序列分析。
目前,我将它们读入熊猫,执行一些类型检查和业务逻辑,然后使用nops_eval()
发送到镶木地板。我想按日期和版本号进行分区。因此,代码如下所示:
ddf.to_parquet
'some / path / _Metadata'
'some / path / _common_Metadata'
'some / path / DATE = 202001 / VERSION = 0 / part.0.parquet'
....依此类推。
现在,我想读入它,并执行基本的内存操作。阅读时得到奇怪的结果。
import pandas as pd
import dask.dataframe as ddf
import pyarrow.dataset as ds
d = pd.DataFrame({'DATE':[202001,202002,202003,202004,202005]*20,'VERSION':[0,1]*50,'OTHER':[1]*100})
d_dask = ddf.from_pandas(d,npartitions=2)
ddf.to_parquet(d_dask,'some/path/',engine = 'pyarrow',partition_on = ['DATE','VERSION'],\
write_Metadata_file = True,schema='infer')
我得到以下信息:
test_read = ddf.read_parquet('some/path/',engine='pyarrow',partitioning="hive")
test_read.groupby('DATE').sum()
[IN]: test_read.groupby('DATE').sum().compute()
现在使用[OUT]:
DATE OTHER
202001 0
202002 0
202003 0
202004 0
202005 0
API可以正常工作。
pyarrow.datasets
我得到以下信息:
test_read = ds.dataset('some/path/',format='parquet',partitioning="hive")
test_read.to_table().to_pandas().groupby('DATE').sum()
那是我的期望。
有人知道这是怎么回事吗?
版本:
[OUT]:
OTHER VERSION
DATE
202001 20 10
202002 20 10
202003 20 10
202004 20 10
202005 20 10
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。