Java 我需要安装ApacheSpark和/或Scala来运行jUnit吗?
我对Apache Spark框架非常陌生,尝试设置我的第一个jUnit,如下所示:Java 我需要安装ApacheSpark和/或Scala来运行jUnit吗?,java,maven,apache-spark,junit,Java,Maven,Apache Spark,Junit,我对Apache Spark框架非常陌生,尝试设置我的第一个jUnit,如下所示: package com.sample.ccspark; import com.holdenkarau.spark.testing.SharedJavaSparkContext; import org.apache.spark.api.java.JavaRDD; import org.junit.Test; import java.util.List; import static java.util.Arra
package com.sample.ccspark;
import com.holdenkarau.spark.testing.SharedJavaSparkContext;
import org.apache.spark.api.java.JavaRDD;
import org.junit.Test;
import java.util.List;
import static java.util.Arrays.asList;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
public class SimpleTest extends SharedJavaSparkContext {
@Test
public void initializationWorks() {
List<Integer> list = asList(1, 2, 3, 4);
JavaRDD<Integer> rdd = jsc().parallelize(list);
assertThat(rdd.count(), is(list.size()));
}
}
我还没有在本地安装Spark或Scala,我的印象是测试框架应该考虑所有依赖项。这里有我遗漏的东西吗?在工件名称中
火花试验-base_2.11
spark-core_2.10
最后一个数字是Scala的版本。我想您应该为这两种情况只选择一个。我不确定,但当您出现此错误时:
NoClassDefFoundError
可能只是意味着简单类不存在。我认为如果Simple不存在,就不能编写SimpleTest。我可能错了。从IntelliJ判断,jUnit本身存在AbstractPartialFunction。据我所知,这与测试试图将Spark运行时初始化为一个单独的进程(这只是我的理论)而没有正确的类路径有关。就是这样!已更改为spark-core_2.11,现在一切正常:)
<dependency>
<groupId>com.holdenkarau</groupId>
<artifactId>spark-testing-base_2.11</artifactId>
<version>2.2.0_0.7.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>2.2.0</version>
</dependency>
Exception in thread "dispatcher-event-loop-6" java.lang.NoClassDefFoundError:
scala/runtime/AbstractPartialFunction$mcVL$sp