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

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

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

  1. public void method(DataFrameReader sparkDataFrameReader){
  2. JavaRDD<Row> result = FileReader.readCsv(sparkDataFrameReader);
  3. //do some operation with the result obtained
  4. }

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

  1. @Test
  2. public void method() throws Exception {
  3. SparkSession spark = SparkSession.builder().appName("Build a DataFrame from Scratch").master("local[*]").getOrCreate();
  4. sparkDataFrameReader = session.read().format("csv").option(HEADER, "true");
  5. obj.method(sparkDataFrameReader);
  6. }

我得到的错误是:

  1. ERROR UserGroupInformation Can't find user in Subject:
  2. Principal: UnixPrincipal: testuser
  3. Principal: UnixNumericUserPrincipal: 503
  4. Principal: UnixNumericGroupPrincipal [Primary Group]: 20
  5. Principal: UnixNumericGroupPrincipal [Supplementary Group]: 501
  6. Principal: UnixNumericGroupPrincipal [Supplementary Group]: 12
  7. Principal: UnixNumericGroupPrincipal [Supplementary Group]: 61
  8. Principal: UnixNumericGroupPrincipal [Supplementary Group]: 98
  9. Principal: UnixNumericGroupPrincipal [Supplementary Group]: 100
  10. Principal: UnixNumericGroupPrincipal [Supplementary Group]: 204
  11. Principal: UnixNumericGroupPrincipal [Supplementary Group]: 702
  12. Principal: UnixNumericGroupPrincipal [Supplementary Group]: 701
  13. java.io.IOException: failure to login

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

暂无答案!

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

相关问题