DASK Delayedとのマージが、DASK組み込みコマンドとのマージよりも非常に時間がかかるのはなぜですか?

Neuronix

「key」という列で、形状がdf1.shape =(80000、18)の大きなパンダデータフレームを、形状がdf2.shape =(1、18)の小さなパンダデータフレームにマージしたいと思います。dd.mergeを使用した時間パフォーマンスは次のとおりです。

ddf1 = from_pandas(df1, npartitions=20)
ddf2 = from_pandas(df2, npartitions=1)
start = time.time()
pred_mldf = dd.merge(ddf1 , ddf2, on =['key'])
print(pred_mldf)
t0 = time.time()
print("deltat = ", t0 - start)

そして、結果はdeltat = 0.04です。

次に、この方法で遅延したdaskを使用してこれを実装し始めました。

def mymerge(df1, df2, key):
    pred_mldf = pd.merge(df1, df2, on = key)
    return pred_mldf

start = time.time()
pred_mldf = dask.delayed(mymerge)(df1, df2, ['key'])
pred_mldf.compute()
t0 = time.time()
print("deltat = ", t0 - start)

そして、結果はdeltat = 3.48です。

私の仮説は、2つのアプローチで同時にパフォーマンスを達成する必要があるというものです。私がここで間違っていることは何ですか?

スルタン

@Nick Beckerがコメントで指摘したように、現在、最初のコードブロックはマージを定義するだけで、実行しません(2番目のコードブロックは実行します)。したがって、追加.compute()すると別のマージ時間が与えられます。

ddf1 = from_pandas(df1, npartitions=20)
ddf2 = from_pandas(df2, npartitions=1)
start = time.time()
pred_mldf = dd.merge(ddf1 , ddf2, on =['key']).compute()
print(pred_mldf)
t0 = time.time()
print("deltat = ", t0 - start)

実行速度が異なるもう1つの理由は、2番目のコードブロックで完全df1を遅延関数に渡すことですdf1が大きい場合は、(最初​​のコードブロックのように)20のチャンクに分割し、それらを個別に遅延関数に渡す方が少し公平かもしれません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

networkxを使用する場合、dask.delayedがシリアルコードよりも時間がかかるのはなぜですか?

分類Dev

__bool__組み込み関数がdask.delayedオブジェクトで例外を発生させる必要があるのはなぜですか?

分類Dev

daskを使用する場合、寄木細工よりもzarrの方がパフォーマンスがはるかに優れているのはなぜですか?

分類Dev

マルチプロセッシングのパフォーマンスが非常に速いのに、Daskのパフォーマンスが非常に遅いのはなぜですか?

分類Dev

CSVからインポートするときにHDF5と比較してパンダとdaskのパフォーマンスが向上するのはなぜですか?

分類Dev

Daskとフィールド名の複数のマージ

分類Dev

タスク間のデータフローが大きい場合、daskマルチプロセッシングスケジューラを利用する最も効率的な方法は何ですか?

分類Dev

Dask /分散型ワーカー内での計算がはるかに遅いのはなぜですか?

分類Dev

DaskがParquetファイルを読み取る速度が、Pandasが同じ寄木細工のファイルを読み取るよりもはるかに遅いのはなぜですか?

分類Dev

私の目標にふさわしいDask?`` `Compute()` ``非常に時間がかかる

分類Dev

Dask操作の実行時間の見積もりを取得することは可能ですか?

分類Dev

提出したマシンとは異なるマシンでDaskコンピューティングの結果を取得するにはどうすればよいですか?

分類Dev

Daskで中間結果を再利用する(delayedとdask.dataframeの混合)

分類Dev

Python:DaskスライスをNumpy配列にコピーすると、行数が一致しないのはなぜですか

分類Dev

DaskはPythonでSQLServerからどのように読み取りますか

分類Dev

Dask分散のStreamz

分類Dev

daskのflatMap

分類Dev

パンダ操作を実行しているときに、なぜdask警告が表示されるのですか?

分類Dev

「小さい」サイズのタスクでMemoryErrorが原因でdaskワーカーが失敗するのはなぜですか?[Dask.bag]

分類Dev

Daskはスレッドスケジューラでマルチスレッドをどのように活用しますか?

分類Dev

Daskとfbprophet

分類Dev

map_blockとmap_overlapの処理時間の違いは、dask.arrayからnp.arrayへの変換によるものですか?

分類Dev

xarrayのapply_ufuncでdask = parallelizedとdask = allowedの違いは何ですか?

分類Dev

仮想マシンで実行しているときにDaskダッシュボードを表示するにはどうすればよいですか?

分類Dev

daskワーカーからredisへの書き込み

分類Dev

すでに実行中のdaskスケジューラがあるかどうかを確認するにはどうすればよいですか?

分類Dev

daskオブジェクトからのdaskグラフの表示

分類Dev

Daskデータフレームに形状属性がないのはなぜですか?

分類Dev

Pythonでのdaskによる遅延実行とtqdmの組み合わせ

Related 関連記事

  1. 1

    networkxを使用する場合、dask.delayedがシリアルコードよりも時間がかかるのはなぜですか?

  2. 2

    __bool__組み込み関数がdask.delayedオブジェクトで例外を発生させる必要があるのはなぜですか?

  3. 3

    daskを使用する場合、寄木細工よりもzarrの方がパフォーマンスがはるかに優れているのはなぜですか?

  4. 4

    マルチプロセッシングのパフォーマンスが非常に速いのに、Daskのパフォーマンスが非常に遅いのはなぜですか?

  5. 5

    CSVからインポートするときにHDF5と比較してパンダとdaskのパフォーマンスが向上するのはなぜですか?

  6. 6

    Daskとフィールド名の複数のマージ

  7. 7

    タスク間のデータフローが大きい場合、daskマルチプロセッシングスケジューラを利用する最も効率的な方法は何ですか?

  8. 8

    Dask /分散型ワーカー内での計算がはるかに遅いのはなぜですか?

  9. 9

    DaskがParquetファイルを読み取る速度が、Pandasが同じ寄木細工のファイルを読み取るよりもはるかに遅いのはなぜですか?

  10. 10

    私の目標にふさわしいDask?`` `Compute()` ``非常に時間がかかる

  11. 11

    Dask操作の実行時間の見積もりを取得することは可能ですか?

  12. 12

    提出したマシンとは異なるマシンでDaskコンピューティングの結果を取得するにはどうすればよいですか?

  13. 13

    Daskで中間結果を再利用する(delayedとdask.dataframeの混合)

  14. 14

    Python:DaskスライスをNumpy配列にコピーすると、行数が一致しないのはなぜですか

  15. 15

    DaskはPythonでSQLServerからどのように読み取りますか

  16. 16

    Dask分散のStreamz

  17. 17

    daskのflatMap

  18. 18

    パンダ操作を実行しているときに、なぜdask警告が表示されるのですか?

  19. 19

    「小さい」サイズのタスクでMemoryErrorが原因でdaskワーカーが失敗するのはなぜですか?[Dask.bag]

  20. 20

    Daskはスレッドスケジューラでマルチスレッドをどのように活用しますか?

  21. 21

    Daskとfbprophet

  22. 22

    map_blockとmap_overlapの処理時間の違いは、dask.arrayからnp.arrayへの変換によるものですか?

  23. 23

    xarrayのapply_ufuncでdask = parallelizedとdask = allowedの違いは何ですか?

  24. 24

    仮想マシンで実行しているときにDaskダッシュボードを表示するにはどうすればよいですか?

  25. 25

    daskワーカーからredisへの書き込み

  26. 26

    すでに実行中のdaskスケジューラがあるかどうかを確認するにはどうすればよいですか?

  27. 27

    daskオブジェクトからのdaskグラフの表示

  28. 28

    Daskデータフレームに形状属性がないのはなぜですか?

  29. 29

    Pythonでのdaskによる遅延実行とtqdmの組み合わせ

ホットタグ

アーカイブ