星火使用继承Scala的功能(Java/SparkSQL)
问题描述:
我试图用一个继承Scala的函数(StuctType.diff()),并即时得到一个的NoSuchMethodError。星火使用继承Scala的功能(Java/SparkSQL)
线程“main”中的异常java.lang.NoSuchMethodError: org.apache.spark.sql.types.StructType.diff(Lscala/collection/GenSeq;)Lscala/collection/Seq; 在TableNode.neighborNode(SparkSQLTest.java:112) 在SparkSQLTest.main(SparkSQLTest.java:58) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.spark.deploy.SparkSubmit $。 org $ apache $ spark $ deploy $ SparkSubmit $$ runMain(SparkSubmit.scala:731) at org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1(SparkSubmit.scala:181) at org.apache.spark.deploy .SparkSubmit $ .submit(SparkSubmit.scala:206) at org.apache.spark.deploy.SparkSubmit $。主(SparkSubmit.scala:121) 在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
答
嗯,我使用的Spark 2.0和StructType方法是supported.Please看看下面的代码片段,我希望它的帮助:
val schema = new StructType(Array(
StructField("STORE_ID", StringType,true),
StructField("SALE_DATE", DateType,true)))
你能执行'sc.version'来查看你使用的是什么Spark版本?你可以使用'spark-shell'来检查它。 –
嗨,我执行了。我正在使用Spark 1.6.2 –
你能显示整个代码吗?你能展示你如何定义依赖关系吗?你在用sbt吗? –