gpt4 book ai didi

Dask DataFrame .head() 索引后非常慢

转载 作者:行者123 更新时间:2023-12-03 03:38:04 24 4
gpt4 key购买 nike

不可重现,但有人可以解释一下为什么 .head() 调用在索引后会大大减慢吗?

import dask.dataframe as dd
df = dd.read_parquet("Filepath")
df.head() # takes 10 seconds

df = df.set_index('id')

df.head() # takes 10 minutes +

最佳答案

docs 中所述, set_index 根据新索引对数据进行排序,以便沿该索引的划分将数据拆分为其逻辑分区。排序需要额外的时间,但执行后会使对该索引的操作速度更快。原始文件上的 head() 将从光盘上的第一个数据 block 中获取,而不考虑任何顺序。

您可以使用 index= 关键字设置 read_parquet (也许数据本身已经排序?)或使用 .map_partitions(lambda df: df.set_index(..)),但这提出了一个明显的问题,你为什么要费心,你想实现什么目标? 如果数据已经排序,那么您还可以使用set_index(..,sorted=True),甚至可以使用divisions关键字(如果您碰巧有信息) - 这不需要排序,并且相应地更快。

关于Dask DataFrame .head() 索引后非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51584472/

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