ray.data.Dataset.repartition#
- Dataset.repartition(num_blocks: int, *, shuffle: bool = False) Dataset [源代码]#
将
数据集
重新分配为恰好这个数量的 块。这种方法可以用于调整管道的性能。要了解更多信息,请参阅 高级:性能提示和调优。
如果你正在将数据写入文件,你也可以使用此方法来更改输出文件的数量。要了解更多信息,请参阅 更改输出文件数量。
备注
Repartition 有两种模式。如果
shuffle=False
,Ray Data 执行最小化的数据移动以均衡块大小。否则,Ray Data 执行完全分布式洗牌。备注
此操作要求所有输入在对象存储中具体化,以便执行。
示例
>>> import ray >>> ds = ray.data.range(100).repartition(10).materialize() >>> ds.num_blocks() 10
时间复杂度:O(数据集大小 / 并行度)
- 参数:
num_blocks – 块的数量。
shuffle – 是否在重新分区期间执行分布式洗牌。当启用洗牌时,每个输出块包含来自每个输入块的数据行的子集,这需要全对全的数据移动。当禁用洗牌时,输出块从相邻的输入块创建,最小化数据移动。
- 返回:
重新分配的
数据集
。