使用dask时如何避免使用`Bag.take(n)`的空结果?

时间:2016-07-07 19:57:01

标签: python bag dask

上下文: Dask文档明确指出Bag.take()只会从第一个分区收集。但是,使用过滤器时,可能会出现第一个分区为空,而其他分区为空。

问题: 是否可以使用Bag.take()以便从足够数量的分区中收集以收集n项(或最小可用小于n)。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

from toolz import take
f = lambda seq: list(take(n, seq))
b.reduction(f, f)

这会抓取每个分区的前n个元素,将它们全部收集起来,然后获取结果的前n个元素。