gpt4 book ai didi

python - 使用 dask.dataframe.to_parquet() 进行分区时丢失索引信息

转载 作者:行者123 更新时间:2023-12-04 10:37:58 30 4
gpt4 key购买 nike

当我使用 dask=1.2.2 和 pyarrow 0.11.1 时,我没有观察到这种行为。更新后(dask=2.10.1 和 pyarrow=0.15.1),当我使用带有给定 partition_on 和 write_index 参数的 to_parquet 方法时,我无法保存索引。在这里,我创建了一个显示问题的最小示例:

from datetime import timedelta
from pathlib import Path

import dask.dataframe as dd
import pandas as pd

REPORT_DATE_TEST = pd.to_datetime('2019-01-01').date()
path = Path('/home/ludwik/Documents/YieldPlanet/research/trials/')

observations_nr = 3
dtas = range(0, observations_nr)
rds = [REPORT_DATE_TEST - timedelta(days=days) for days in dtas]
data_to_export = pd.DataFrame({
'report_date': rds,
'dta': dtas,
'stay_date': [REPORT_DATE_TEST] * observations_nr,
}) \
.set_index('dta')

data_to_export_dask = dd.from_pandas(data_to_export, npartitions=1)

file_name = 'trial.parquet'
data_to_export_dask.to_parquet(path / file_name,
engine='pyarrow',
compression='snappy',
partition_on=['report_date'],
write_index=True
)

data_read = dd.read_parquet(path / file_name, engine='pyarrow')
print(data_read)

这使:
| | stay_date  |dta| report_date|
|0| 2019-01-01 | 2 | 2018-12-30 |
|0| 2019-01-01 | 1 | 2018-12-31 |
|0| 2019-01-01 | 0 | 2019-01-01 |

我没有在 dask 文档中的任何地方看到描述。

有谁知道如何在对 Parquet 数据进行分区时保存索引?

最佳答案

问题出在 pyarrow 的后端。我在他们的 JIRA 网页上提交了一个错误报告:
https://issues.apache.org/jira/browse/ARROW-7782

关于python - 使用 dask.dataframe.to_parquet() 进行分区时丢失索引信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60070170/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com