我正在尝试使用继承的Scala函数(StuctType.diff())并获取NoSuchMethodError .
线程中的异常"main" java.lang.NoSuchMethodError:org.apache.spark.sql.types.StructType.diff(Lscala / collection / GenSeq;)Lscala / collection / Seq;位于Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)的SparkSQLTest.main(SparkSQLTest.java:58)中的TableNode.neighborNode(SparkSQLTest.java:112)在org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy的java.lang.reflect.Method.invoke(Method.java:497)中的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)位于org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1(SparkSubmit.scala:181)的org.apache.spark.deploy.SparkSubmit $ .submit(SparkSubmit.scala)上的$ SparkSubmit $$ runMain(SparkSubmit.scala:731) :206)org.apache.spark.deploy.SparkSubmit $ .main(SparkSubmit.scala:121)at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)*
代码如下:
public StructType foo(DataFrame df){
StructField sf = this.schema.diff(df.schema()).last();
StructType schema_tmp = new StructType().add(sf);
return schema_tmp;
}
有人有什么想法吗?我正在使用Spark 1.6.2和Scala 2.10
1 回答
我正在使用Spark 2.0和支持StructType方法 . 请看下面的代码片段我希望它有用: