コンテキスト: Daskドキュメントでは、Bag.take()
が最初のパーティションからのみ収集されることを明確に述べています。ただし、フィルタを使用すると、最初のパーティションは空で、それ以外のパーティションは空になることがあります。daskを使うときに `Bag.take(n)`で空の結果を避けるには?
質問: はそれはそれはn
アイテム(またはn
よりも小さい可能な最大)を収集するために、パーティションの十分な数から集めるようにBag.take()
を使用することが可能です。
コンテキスト: Daskドキュメントでは、Bag.take()
が最初のパーティションからのみ収集されることを明確に述べています。ただし、フィルタを使用すると、最初のパーティションは空で、それ以外のパーティションは空になることがあります。daskを使うときに `Bag.take(n)`で空の結果を避けるには?
質問: はそれはそれはn
アイテム(またはn
よりも小さい可能な最大)を収集するために、パーティションの十分な数から集めるようにBag.take()
を使用することが可能です。
次のような何かができる:
はfrom toolz import take
f = lambda seq: list(take(n, seq))
b.reduction(f, f)
これは、各パーティションの最初のn個の要素をつかむ一緒にそれらすべてを収集し、その結果の最初のn個の要素を取ります。
これはうまくいきませんでした!ツールバージョン0.8.0、dask 0.10、python 3.5.2を使用してください。 'tb = db.from_sequence(範囲(20)、nパーティション= 4)' 'tb.reduction(take(2)、take(2)' PicklingError:
ああ、酸洗は奇妙です。おそらく 'f = lambda seq:list(take(n、seq))'代わりに「b.reduction(f、f)」と書かれています。 – MRocklin
これはそうでした。そして、はい、私はピクルスの魅力の他の場所を読みました。 – JMann
投稿する前にドキュメントをお読みいただきありがとうございます。これは私を幸せにします:) – MRocklin