dask.bag.Bag.groupby

dask.bag.Bag.groupby

Bag.groupby(grouper, method=None, npartitions=None, blocksize=1048576, max_branch=None, shuffle=None)[源代码]

按键函数分组集合

这需要读取完整数据集、序列化和洗牌。这是昂贵的。如果可能,你应该使用 foldby

参数
grouper: 函数

用于分组元素的函数

shuffle: str

选择 ‘disk’ 用于磁盘上的洗牌,或选择 ‘tasks’ 以使用任务调度框架。如果你在单机上,请使用 ‘disk’;如果你在分布式集群上,请使用 ‘tasks’。

npartitions: int

如果使用基于磁盘的洗牌,输出分区的数量

blocksize: int

如果使用基于磁盘的洗牌,洗牌块的大小(字节)

max_branch: int

如果使用基于任务的洗牌,每个分区经历的分割量。增加此值以减少副本数量,但会增加调度器开销。

参见

Bag.foldby

示例

>>> import dask.bag as db
>>> b = db.from_sequence(range(10))
>>> iseven = lambda x: x % 2 == 0
>>> dict(b.groupby(iseven))             
{True: [0, 2, 4, 6, 8], False: [1, 3, 5, 7, 9]}