如何使用mockito创建用于单元测试的本地spark会话

wwtsj6pe  于 2021-05-19  发布在  Spark
关注(0)|答案(0)|浏览(385)

我有一个方法,它的语句读取csv文件并将rdd返回为:

public void method(DataFrameReader sparkDataFrameReader){

    JavaRDD<Row> result = FileReader.readCsv(sparkDataFrameReader);
    //do some operation with the result obtained
}

readcsv加载csv并在实际程序中返回javardd。
注: DataFrameReader FileReader = spark.read().format("csv").option(HEADER, "true"); 我正在用mockito和springboot为方法编写一个单元测试。因此需要mock readcsv来返回javardd,其中包含一些模拟数据。
如何模拟readcsv以在mockito中返回javardd??
我还尝试创建一个本地sparksession,正如我在其他帖子中看到的那样,创建一个本地sparksession并继续,但在使用mockito创建本地sparksession时出错:

@Test
    public void method() throws Exception {

SparkSession spark = SparkSession.builder().appName("Build a DataFrame from Scratch").master("local[*]").getOrCreate();
        sparkDataFrameReader = session.read().format("csv").option(HEADER, "true");
        obj.method(sparkDataFrameReader);
}

我得到的错误是:

ERROR UserGroupInformation Can't find user in Subject:
    Principal: UnixPrincipal: testuser
    Principal: UnixNumericUserPrincipal: 503
    Principal: UnixNumericGroupPrincipal [Primary Group]: 20
    Principal: UnixNumericGroupPrincipal [Supplementary Group]: 501
    Principal: UnixNumericGroupPrincipal [Supplementary Group]: 12
    Principal: UnixNumericGroupPrincipal [Supplementary Group]: 61
    Principal: UnixNumericGroupPrincipal [Supplementary Group]: 98
    Principal: UnixNumericGroupPrincipal [Supplementary Group]: 100
    Principal: UnixNumericGroupPrincipal [Supplementary Group]: 204
    Principal: UnixNumericGroupPrincipal [Supplementary Group]: 702
    Principal: UnixNumericGroupPrincipal [Supplementary Group]: 701

java.io.IOException: failure to login

问题:我可以模拟readcsv来返回包含一些数据的javardd吗?否则,我如何创建一个本地sparksession连同mockito?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题