spark测试库,用于使用配置单元支持为spark编写Java JUnit测试

spark测试库,用于使用配置单元支持为spark编写Java JUnit测试,java,unit-testing,apache-spark,hive,Java,Unit Testing,Apache Spark,Hive,我正在使用编写JUnit测试。 检查以下代码: public class MyTestSuite extends JavaDataFrameSuiteBase implements Serializable { .... @Test public void oneTest() { ClassLoader classLoader = getClass().getClassLoader(); File testData = new File(

我正在使用编写JUnit测试。
检查以下代码:

public class MyTestSuite extends JavaDataFrameSuiteBase implements Serializable {
    ....
    @Test
    public void oneTest() {

        ClassLoader classLoader = getClass().getClassLoader();
        File testData = new File(classLoader.getResource("testFile1.txt").getFile());
        JavaRDD<String> lines = jsc().textFile(testData.getAbsolutePath());
        ...
我得到的例外是:

org.apache.spark.sql.AnalysisException:org.apache.hadoop.hive.ql.metadata.HiveException:MetaException(消息:java.lang.IllegalArgumentException:无法从空字符串创建路径)

该文件必须为HDFS格式。在尝试了很多东西之后,我发现了这个不优雅的解决方法:

    ....
    @Test
    public void oneTest() {           
        File testData = new File(classLoader.getResource("testFile1.txt").getFile());
        JavaRDD<String> lines = jsc().textFile(testData.getAbsolutePath());
        lines.saveAsTextFile("/desired_location_in_hdfs");          

        TripleTableLoader tt_loader = new TripleTableLoader("/desired_location_in_hdfs", "db_name", spark);
。。。。
@试验
public void oneTest(){
File testData=新文件(classLoader.getResource(“testFile1.txt”).getFile());
JavaRDD lines=jsc().textFile(testData.getAbsolutePath());
saveAsTextFile(“/desired_location_in_hdfs”);
TripleTableLoader tt_loader=新的TripleTableLoader(“/desired_location_in_hdfs”,“db_name”,spark);
基本上,我在本地将文件读入RDD并将其写回HDFS


是否有更好的解决方案使此文件在适用于spark testing base的HDFS中可用?

我已编辑了我的问题并添加了实际的异常。
    ....
    @Test
    public void oneTest() {           
        File testData = new File(classLoader.getResource("testFile1.txt").getFile());
        JavaRDD<String> lines = jsc().textFile(testData.getAbsolutePath());
        lines.saveAsTextFile("/desired_location_in_hdfs");          

        TripleTableLoader tt_loader = new TripleTableLoader("/desired_location_in_hdfs", "db_name", spark);