コンパイル時に依存しない2つのモジュールを持つspark scala 1.6.1_2.10プロジェクトがあります。最初のモジュールはスパークドライバアプリを起動しています。 最初のモジュールで、rdd.map {}オペレーションの1つで、リフレクションclass.forName( "second.module.function.MapOperation")を使用してクラスをロードしようとしています。Apache Spark 1.6.1のClass.forNameマップ
spark-submitには、モジュール1をプライマリ、その他を--jarsオプションで指定します。
このコードは、ローカルのintellijで正常に動作します。 ClassNotFound second.module.function.MapOperation on cluster 同じクラスをテストすると、ClassNotFoundの機能テストケースでも失敗します。
私はクラスローダーに問題があり、スパークジョブ/操作でClass.forNameを使用していますか?
クラスタにjarがありません。 ...私の[回答]を見てください(https://stackoverflow.com/a/43720970/647053) –
直接呼び出される(リフレクションなしの)クラスは、問題なく呼び出されます。 – RockSolid
あなたのjarファイルが存在するかどうかを確認します –