dask.bag.Bag.map_分区

dask.bag.Bag.map_分区

Bag.map_partitions(func, *args, **kwargs)[源代码]

将一个函数应用于一个或多个包中的每个分区。

请注意,所有 Bag 参数必须分区相同。

参数
函数可调用

要在每个分区上调用的函数。此函数应期望每个分区都有一个 IteratorIterable,并应返回一个 IteratorIterable

*args, **kwargs包, 物品, 延迟, 或对象

传递给 func 的参数和关键字参数。来自此包的分区将是第一个参数,这些参数将在此之后传递。

示例

>>> import dask.bag as db
>>> b = db.from_sequence(range(1, 101), npartitions=10)
>>> def div(nums, den=1):
...     return [num / den for num in nums]

使用一个Python对象:

>>> hi = b.max().compute()
>>> hi
100
>>> b.map_partitions(div, den=hi).take(5)
(0.01, 0.02, 0.03, 0.04, 0.05)

使用 Item

>>> b.map_partitions(div, den=b.max()).take(5)
(0.01, 0.02, 0.03, 0.04, 0.05)

请注意,虽然两个版本都给出了相同的输出,但第二个版本形成了一个单一的图,然后一次性计算所有内容,在某些情况下可能更高效。