Spark 测试用例不适用于 2.4.0 版本
Spark Test cases not working for 2.4.0 version
我们有一个使用 hadoop 3.1.3 和 spark 2.4 的应用程序。0.The Map-Reduce 推导是使用 Java 编写的。 Spark 数据集派生是使用 Java.The Map-Reduce 测试用例编写的,工作正常,但 spark junit 测试用例失败
正确创建了 spark 会话,同时使用 spark 会话加载示例 json 文件:
Dataset<Row> input = sparkSession.read()
.format("json")
.option("timestampFormat", "yyyy/MM/dd HH:mm:ss ZZ")
.option("quote", "\"")
.option("multiline", true)
.load("src/test/resources/samples/abcd.json");
出现如下错误:
Exception in thread "dag-scheduler-event-loop" java.lang.NoSuchMethodError: org.apache.hadoop.mapreduce.InputSplit.getLocationInfo()[Lorg/apache/hadoop/mapred/SplitLocationInfo;
at org.apache.spark.rdd.NewHadoopRDD.getPreferredLocations(NewHadoopRDD.scala:310)
环境变量设置为:
HADOOP_HOME=c:\hadoop-2.7.1 JAVA_HOME=c:\openjdk1.8.0_271 SPARK_HOME=c:\spark-2.4.0-bin-hadoop2.7(since spark2.4 uses hadoop 2.7.1)
我应该排除 spark 中的哪个 jar 或者我应该包含任何 hadoop jar?或任何其他检查步骤?
我找到了解决上述问题的方法。
还得引入下面的依赖
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>3.1.1.7.1.6.0-297</version>
</dependency>
我们有一个使用 hadoop 3.1.3 和 spark 2.4 的应用程序。0.The Map-Reduce 推导是使用 Java 编写的。 Spark 数据集派生是使用 Java.The Map-Reduce 测试用例编写的,工作正常,但 spark junit 测试用例失败 正确创建了 spark 会话,同时使用 spark 会话加载示例 json 文件:
Dataset<Row> input = sparkSession.read()
.format("json")
.option("timestampFormat", "yyyy/MM/dd HH:mm:ss ZZ")
.option("quote", "\"")
.option("multiline", true)
.load("src/test/resources/samples/abcd.json");
出现如下错误:
Exception in thread "dag-scheduler-event-loop" java.lang.NoSuchMethodError: org.apache.hadoop.mapreduce.InputSplit.getLocationInfo()[Lorg/apache/hadoop/mapred/SplitLocationInfo;
at org.apache.spark.rdd.NewHadoopRDD.getPreferredLocations(NewHadoopRDD.scala:310)
环境变量设置为:
HADOOP_HOME=c:\hadoop-2.7.1 JAVA_HOME=c:\openjdk1.8.0_271 SPARK_HOME=c:\spark-2.4.0-bin-hadoop2.7(since spark2.4 uses hadoop 2.7.1)
我应该排除 spark 中的哪个 jar 或者我应该包含任何 hadoop jar?或任何其他检查步骤?
我找到了解决上述问题的方法。 还得引入下面的依赖
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>3.1.1.7.1.6.0-297</version>
</dependency>