我很新到Apache的Spark框架,試圖建立我的第一個喜歡的JUnit如下:然而我是否需要安裝Apache Spark和/或Scala才能運行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.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()));
}
}
與在pom.xml
<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
我沒有Spark或斯卡拉本地安裝的呢,是下印象TESTIN g框架應該照顧所有的依賴關係。有什麼我在這裏失蹤?
我不確定,但是當你有這個錯誤:'NoClassDefFoundError'也許它只是意味着簡單的類不存在。 我認爲如果Simple不存在,你就不能編寫SimpleTest。我可能錯了。 – Minirock
從IntelliJ判斷,AbstractUnitFunction是存在於jUnit本身中的。在我的理解中,這與測試嘗試將Spark運行時初始化爲一個單獨的過程(這只是我的理論)並沒有正確的類路徑有關。 – Altair7852