我正在围绕一个火花项目编写一些JUnit单元测试。
我尝试测试的一个函数接受JavaRDD作为参数,我想以编程方式创建JavaRDD,并且从List转换到RDD似乎是最合乎逻辑的方法。
How to convert List to JavaRDD建议我使用JavaSparkContext.parallelize(List)
。但是,看到我在单元测试中这样做,我不想实例化SparkContext对象。
答案 0 :(得分:2)
这不是一个真正的选项,您需要使用Spark Context来创建RDD。一种选择是使用spark-testing-base(也在spark packages上)(我是作者)为测试用途创建一个spark上下文。如果它可以帮助我扩展它以提供一个提供JavaSparkContext的基类?
答案 1 :(得分:1)
最直接的解决方案就是在本地创建JavaSparkContext。
JavaSparkContext context = new JavaSparkContext("local[4]", "test");
//test code here
context.stop();
这有一个缺点,即如果无法创建上下文,它将导致测试失败。