1 つの Spark タスク

1 つのタスクのみで長時間実行されるステージが見られる場合、それは問題の兆候である可能性があります。 この 1 つのタスクが実行されている間は、1 つの CPU のみが使用され、クラスターの残りの部分はアイドル状態になる可能性があります。 これは、次の状況で最も頻繁に発生します。

  • 小さなデータに対する高価なUDF

  • PARTITION BYステートメントなしのウィンドウ関数

  • 分割できないファイルの種類から読み取ります。 つまり、ファイルを複数の部分に分けて読み取ることはできないため、最終的には 1 つの大きなタスクになります。 Gzip は、分割不可能なファイルタイプの例です。

  • JSON または CSV ファイルの読み取り時にmultiLineオプションを設定する

  • 大きなファイルのスキーマ推論

  • repartition(1) または coalesce(1) の使用