用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。