dask_expr._collection.Index.repartition
dask_expr._collection.Index.repartition¶
- Index.repartition(divisions: tuple | None = None, npartitions: int | None = None, partition_size: str = None, freq=None, force: bool = False)¶
重新分配一个集合
必须指定 divisions、npartitions 或 partition_size 中的一个。如果不是这种情况,将会引发
ValueError
。- 参数
- 部门列表,可选
用于将数据帧分割成分区的“分界线”。对于
divisions=[0, 10, 50, 100]
,将会有三个输出分区,其中新索引分别包含 [0, 10)、[10, 50) 和 [50, 100)。参见 http://www.aidoczh.com/dask/dataframe-design.html#partitions。- npartitionsint, Callable, 可选
输出分区的大致数量。使用的分区数量可能略低于 npartitions ,具体取决于数据分布,但永远不会更高。可调用对象将输入的分区数量作为参数,并应返回一个整数。
- 分区大小str, 可选
每个分区的最大内存字节数。使用数字或类似 5MB 的字符串。如果指定,npartitions 和 divisions 将被忽略。请注意,该大小反映了 pandas.DataFrame.memory_usage 计算的字节数,这不一定与存储到磁盘时的大小匹配。
警告
此关键字参数触发计算以确定每个分区的内存大小,这可能很耗费资源。
- 强制bool, 默认 False
允许扩展现有的分区。如果为 False,则新分区的上下界必须与旧分区相同。
- 频率str, pd.Timedelta
用于分区时间序列数据的周期,如
'7D'
或'12h'
或pd.Timedelta(hours=12)
。假设使用 datetime 索引。
注释
必须指定 divisions、npartitions、partition_size 或 freq 中的一个。如果不是这种情况,将引发
ValueError
。还要注意
len(divisons)
等于npartitions + 1
。这是因为divisions
表示每个分区的上下界。第一个项目是第一个分区的下界,第二个项目是第二个分区的下界和第一个分区的上界,依此类推。倒数第二个项目是最后一个分区的下界,最后一个(额外的)项目是最后一个分区的上界。示例
>>> df = df.repartition(npartitions=10) >>> df = df.repartition(divisions=[0, 5, 10, 20]) >>> df = df.repartition(freq='7d')