apache-spark - WARN SparkContext:正在构造另一个SparkContext(或在其构造函数中引发了异常)

标签 apache-spark gradle gradlew

我对DataFrame转换代码(使用https://github.com/holdenk/spark-testing-base)进行了两个集成测试,当它们在IntelliJ中单独运行时,它们都运行良好。

但是,当我运行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)

这是完整构建输出的pastebin:https://pastebin.com/drG20kcB

如何一起运行 Spark 集成测试?

谢谢!

PS:如果可能相关,我正在使用gradle包装器(./gradlew clean build)

最佳答案

我需要这个:

test {
  maxParallelForks = 1
}

但是,如果有一种方法可以对gradle中的特定测试子集进行并行执行,那么我将更喜欢该解决方案。

我正在使用ScalaTest和WordSpec BTW。

关于apache-spark - WARN SparkContext:正在构造另一个SparkContext(或在其构造函数中引发了异常),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43262212/

相关文章:

apache-spark - 如何检查我的 RDD 或数据帧是否被缓存?

java - Spark中ReduceByKey中的参数

scala - 通过 Scala Spark 并行读取单独的目录并创建单独的 RDD

gradle - 在gradle中添加源文件扩展名

java - Gradle在eclipse中找到错误的maven存储库url

gradle - 抑制 Gradle 的 JavaExec 输出

android - Gradle构建错误:无法解析配置 ':classpath'的所有依赖项

apache-spark - Spark 将一个 DStream 拆分为多个 RDD

macos - 在Macbook上运行Gradle

gradle - 如何在Gradle中独立运行单个groovy类文件?