使用 dask 时如何避免使用 `Bag.take(n)` 产生空结果?
How to avoid an empty result with `Bag.take(n)` when using dask?
上下文:
Dask 文档明确指出 Bag.take()
只会从第一个分区收集数据。但是,当使用过滤器时,可能会出现第一个分区为空而其他分区不是的情况。
问题:
是否可以使用 Bag.take()
以便它从足够数量的分区中收集以收集 n
项目(或最大可用小于 n
)。
您可以执行以下操作:
from toolz import take
f = lambda seq: list(take(n, seq))
b.reduction(f, f)
这会抓取每个分区的前n个元素,将它们全部收集在一起,然后取结果的前n个元素。
上下文:
Dask 文档明确指出 Bag.take()
只会从第一个分区收集数据。但是,当使用过滤器时,可能会出现第一个分区为空而其他分区不是的情况。
问题:
是否可以使用 Bag.take()
以便它从足够数量的分区中收集以收集 n
项目(或最大可用小于 n
)。
您可以执行以下操作:
from toolz import take
f = lambda seq: list(take(n, seq))
b.reduction(f, f)
这会抓取每个分区的前n个元素,将它们全部收集在一起,然后取结果的前n个元素。