ray.data.Dataset.repartition#

Dataset.repartition(num_blocks: int, *, shuffle: bool = False) Dataset[源代码]#

数据集 重新分配为恰好这个数量的

这种方法可以用于调整管道的性能。要了解更多信息,请参阅 高级:性能提示和调优

如果你正在将数据写入文件,你也可以使用此方法来更改输出文件的数量。要了解更多信息,请参阅 更改输出文件数量

备注

Repartition 有两种模式。如果 shuffle=False,Ray Data 执行最小化的数据移动以均衡块大小。否则,Ray Data 执行完全分布式洗牌。

../../../_images/dataset-shuffle.svg

备注

此操作要求所有输入在对象存储中具体化,以便执行。

示例

>>> import ray
>>> ds = ray.data.range(100).repartition(10).materialize()
>>> ds.num_blocks()
10

时间复杂度:O(数据集大小 / 并行度)

参数:
  • num_blocks – 块的数量。

  • shuffle – 是否在重新分区期间执行分布式洗牌。当启用洗牌时,每个输出块包含来自每个输入块的数据行的子集,这需要全对全的数据移动。当禁用洗牌时,输出块从相邻的输入块创建,最小化数据移动。

返回:

重新分配的 数据集