DataFrame
変換コード(https://github.com/holdenk/spark-testing-baseを使用)の2つの統合テストがあり、IntelliJで個別に実行するとすべて正常に動作します。しかしWARN SparkContext:別のSparkContextが構築されている(またはコンストラクタで例外がスローされた)
、私は次のメッセージを参照最初のテストのために、私のGradleビルドを実行します。
17/04/06 11:29:02 WARN SparkContext: Another SparkContext is being constructed (or threw an exception in its constructor). This may indicate an error, since only one SparkContext may be running in this JVM (see SPARK-2243). The other SparkContext was created at:
そして:
17/04/06 11:29:05 ERROR SparkContext: Error initializing SparkContext.
akka.actor.InvalidActorNameException: actor name [ExecutorEndpoint] is not unique!
そして:
java.lang.NullPointerException
at org.apache.spark.network.netty.NettyBlockTransferService.close(NettyBlockTransferService.scala:152)
秒テストは途中で実行され、次のメッセージで終了します(このコードは実際のクラスタBTWで正常に動作します):
org.apache.spark.SparkException: Job aborted due to stage failure: Task serialization failed: java.lang.NullPointerException
org.apache.spark.broadcast.TorrentBroadcast.<init>(TorrentBroadcast.scala:80)
ここでフルビルド出力のペーストビンです:https://pastebin.com/drG20kcB
私はすべて一緒に私の火花統合テストを実行するにはどうすればよいですか?
ありがとうございます!
PS:用の並列実行を有効にする方法がある場合は、しかし、
test {
maxParallelForks = 1
}
:それは、関連するかもしれない場合は、私はこれを必要とGradleのラッパー(./gradlew clean build
)
私のspark統合テストは、この基本クラスを拡張しています: '抽象クラスSparkIntegrationTestはSharedFarkContextとUnitTestをDataFrameSuiteBaseで拡張します。 –