【问题标题】:Spark use inherited scala functions (Java/SparkSQL)Spark 使用继承的 scala 函数 (Java/SparkSQL)
【发布时间】:2016-12-20 12:54:22
【问题描述】:

我正在尝试使用继承的 Scala 函数 ( StuctType.diff() ),但我得到了一个 NoSuchMethodError


线程“主”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(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:497) 在 org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731) 在 org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181) 在 org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206) 在 org.apache.spark.deploy.SparkSubmit$.main(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

【问题讨论】:

  • 您可以执行sc.version 来查看您使用的Spark 版本吗?您可以使用spark-shell查看。
  • 嗨,我执行了。我正在使用 Spark 1.6.2
  • 你能展示整个代码吗?你能展示你如何定义依赖关系吗?你在用 sbt 吗?

标签: java apache-spark apache-spark-sql


【解决方案1】:

我使用的是 Spark 2.0 并且支持 StructType 方法。请查看下面的代码 sn-p 希望对您有所帮助:

val schema = new StructType(Array(
StructField("STORE_ID", StringType,true),
StructField("SALE_DATE", DateType,true)))

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2013-03-21
    • 2011-09-09
    • 2010-12-11
    相关资源
    最近更新 更多