找到接口org.apache.hadoop.mapreduce.taskattemptcontext,但应为类

inn6fuwd  于 2021-05-31  发布在  Hadoop
关注(0)|答案(0)|浏览(202)

脚本的unittest代码

"execute" should "Script should write data in expected path " in {

    implicit val mockDataHandler: DataHandler = MockDataGenerator.getMockDataHandler(spark)
    implicit val dataProvier: DataProvider = PrepareData()
    val script = new Script()
    script.execute(spark, Array(arg1, arg2))
    val outputPath = ArgumentCaptor.forClass(ClassOf[String])
    val dfCapture = ArgumentCaptor.forClass(ClassOf[DataFrame])
    verify(mockDataHandler, times(1)).saveAsAvrodfCapture.capture(), outputPath.capture())
    assert(outputPath.getValue.equals(path))
}

我尝试对一个脚本运行单元测试,该脚本以avro格式将数据写入输出路径。遇到以下错误: java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.TaskAttemptContext, but class was expected 我见过类似的查询并尝试应用这些查询 avroMapred:******1.7.7:hadoop2 其他一些答案谈到了maven依赖关系,并在其中添加了额外的分类器行,我对这些不太了解。我对这项工作不熟悉。所以请帮我弄清楚一点。

暂无答案!

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

相关问题