用法:
Bag.fold(binop, combine=None, initial='__no__default__', split_every=None, out_type=<class 'dask.bag.core.Item'>)
可并行化约简
Fold 类似于内置函数
reduce
,只是它是并行工作的。 Fold 采用两个二元运算符函数,一个用于减少数据集的每个分区,另一个用于组合分区之间的结果binop
: 在每个分区内减少的二元运算符combine
: 二元运算符组合 binop 的结果
这将如下所示:
>>> intermediates = [reduce(binop, part) for part in partitions] >>> final = reduce(combine, intermediates)
如果只给出了一个函数,那么它将用于两个函数
binop
和combine
,如下例所示来计算总和:>>> def add(x, y): ... return x + y
>>> import dask.bag as db >>> b = db.from_sequence(range(5)) >>> b.fold(add).compute() 10
我们提供完整的二元运算符及其默认参数
>>> b.fold(binop=add, combine=add, initial=0).compute() 10
更复杂的二元运算符也是可行的
>>> def add_to_set(acc, x): ... ''' Add new element x to set acc ''' ... return acc | set([x]) >>> b.fold(add_to_set, set.union, initial=set()).compute() {0, 1, 2, 3, 4}
相关用法
- Python dask.bag.Bag.foldby用法及代码示例
- Python dask.bag.Bag.frequencies用法及代码示例
- Python dask.bag.Bag.flatten用法及代码示例
- Python dask.bag.Bag.filter用法及代码示例
- Python dask.bag.Bag.to_textfiles用法及代码示例
- Python dask.bag.Bag.repartition用法及代码示例
- Python dask.bag.Bag.join用法及代码示例
- Python dask.bag.Bag.accumulate用法及代码示例
- Python dask.bag.Bag.map_partitions用法及代码示例
- Python dask.bag.Bag.groupby用法及代码示例
- Python dask.bag.Bag.reduction用法及代码示例
- Python dask.bag.Bag.remove用法及代码示例
- Python dask.bag.Bag.random_sample用法及代码示例
- Python dask.bag.Bag.distinct用法及代码示例
- Python dask.bag.Bag.topk用法及代码示例
- Python dask.bag.Bag.any用法及代码示例
- Python dask.bag.Bag.pluck用法及代码示例
- Python dask.bag.Bag.to_avro用法及代码示例
- Python dask.bag.Bag.map用法及代码示例
- Python dask.bag.Bag.count用法及代码示例
注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.bag.Bag.fold。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。