2つの大きなsparkデータフレームを結合しようとしていますが、このエラーが発生し続けます:
Container killed by YARN for exceeding memory limits. 24 GB of 22 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead.
これはsparkユーザーの間で一般的な問題のようですが、spark.yarn.executor.memoryOverheardが何であるかについての確かな説明を見つけることができないようです。場合によってはそれが一種のように聞こえますYARNがコンテナを強制終了する前のメモリバッファの容量(たとえば、10GBが要求されましたが、YARNは10.2GBを使用するまでコンテナを強制終了しません)。それ以外の場合は、完全にある種のデータアカウンティングタスクを実行するために使用されているようです。実行したい分析とは別に、私の質問は次のとおりです。
オーバーヘッドオプションは 構成ドキュメント でうまく説明されています:
これは、VMオーバーヘッド、インターン文字列、その他のネイティブオーバーヘッドなどを説明するメモリです。これは、エグゼキュータのサイズ(通常は6〜10%)とともに増加する傾向があります。
これには、JVM以外のゲスト言語(Python、Rなど)のいずれかを使用する場合のユーザーオブジェクトも含まれます。