dask.bag.Bag.map
dask.bag.Bag.map¶
- Bag.map(func, *args, **kwargs)[源代码]¶
将一个函数逐元素应用于一个或多个包。
请注意,所有
Bag
参数必须分区相同。- 参数
- 函数可调用
- *args, **kwargs袋子, 物品, 或对象
传递给
func
的额外参数和关键字参数,位于调用 bag 实例 之后。非 Bag 的参数/关键字参数会在所有对func
的调用中广播。
注释
对于带有多个 Bag 参数的调用,相应的分区应具有相同的长度;如果它们不相同,调用将在计算时出错。
示例
>>> import dask.bag as db >>> b = db.from_sequence(range(5), npartitions=2) >>> b2 = db.from_sequence(range(5, 10), npartitions=2)
对包中的所有元素应用一个函数:
>>> b.map(lambda x: x + 1).compute() [1, 2, 3, 4, 5]
从多个包中应用带有参数的函数:
>>> from operator import add >>> b.map(add, b2).compute() [5, 7, 9, 11, 13]
非袋装参数会在映射函数调用的所有实例中广播:
>>> b.map(add, 1).compute() [1, 2, 3, 4, 5]
也支持关键字参数,并且与常规参数具有相同的语义:
>>> def myadd(x, y=0): ... return x + y >>> b.map(myadd, y=b2).compute() [5, 7, 9, 11, 13] >>> b.map(myadd, y=1).compute() [1, 2, 3, 4, 5]
参数和关键字参数也可以是
dask.bag.Item
的实例。这里我们将把包中的最大值添加到每个元素中:>>> b.map(myadd, b.max()).compute() [4, 5, 6, 7, 8]