简体   繁体   English

Spark-线程中的异常 java.lang.NoSuchMethodError

[英]Spark- Exception in thread java.lang.NoSuchMethodError

I am trying to score a model from pmml file using pmml4s library.我正在尝试使用 pmml4s 库从 pmml 文件中评分 model。 Every time I submit the job in Spark I get the following error:每次我在 Spark 中提交作业时,都会出现以下错误:

20/05/13 23:30:10 ERROR SparkSubmit: org.apache.spark.sql.types.StructType.names(). 
[Ljava/lang/String;
   java.lang.NoSuchMethodError: org.apache.spark.sql.types.StructType.names(). 
    [Ljava/lang/String;
    at org.pmml4s.spark.ScoreModel.transform(ScoreModel.scala:56)
    at com.aexp.JavaPMML.main(JavaPMML.java:24)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)

Following is my code sample:以下是我的代码示例:

ScoreModel model = ScoreModel.fromFile(args[0]);
SparkConf conf = new SparkConf();
SparkSession spark = SparkSession.builder().config(conf).getOrCreate();
Dataset<?> df = spark.read().format("csv")
                     .option("header", "true")
                     .option("inferSchema", "true")
                     .load(args[1]);

Dataset<?> scoreDf = model.transform(df);

Following is the pom file that I am using:以下是我正在使用的 pom 文件:

<dependencies>
    <dependency>
        <groupId>org.pmml4s</groupId>
        <artifactId>pmml4s-spark_2.11</artifactId>
        <version>0.9.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.11</artifactId>
        <version>2.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
          <artifactId>spark-core_2.11</artifactId>
          <version>2.3.2</version>
        </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-mllib_2.11</artifactId>
        <version>2.3.2</version>
    </dependency>
</dependencies>

I have edited my pom file and made the spark version similar still I face the same issue.我已经编辑了我的 pom 文件并使 spark 版本相似,但我仍然面临同样的问题。 When I am using Scala, I am facing the same problem.当我使用 Scala 时,我遇到了同样的问题。 Is there any dependency that I am missing?我缺少任何依赖项吗?

Try to use same version of spark libraries.尝试使用相同version的 spark 库。 If spark versions are not matching we will be getting NoSuchMethodError issue in many places as those methods might have modified or removed in latest versions.如果 spark 版本不匹配,我们将在许多地方遇到NoSuchMethodError问题,因为这些方法可能在最新版本中已修改或删除。

The error is caused by the PMML4S-Spark used the method names of StructType, which is introduced since Spark 2.4.该错误是由于 PMML4S-Spark 使用了从 Spark 2.4 开始引入的 StructType 的方法names引起的。 Now it has been fixed in the latest PMML4S-Spark 0.9.5 .现在它已在最新的 PMML4S-Spark 0.9.5中得到修复。 Please, update your pom file to use the new version:请更新您的 pom 文件以使用新版本:

    <dependency>
        <groupId>org.pmml4s</groupId>
        <artifactId>pmml4s-spark_2.11</artifactId>
        <version>0.9.5</version>
    </dependency>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 “线程“ main”中的异常java.lang.NoSuchMethodError” - “Exception in thread ”main“ java.lang.NoSuchMethodError ” 线程“AppKit 线程”java.lang.NoSuchMethodError 中的异常:accessibilityHitTest - Exception in thread "AppKit Thread" java.lang.NoSuchMethodError: accessibilityHitTest Java安装不正确吗? 线程“ main”中的异常java.lang.NoSuchMethodError - Is Java not installed correctly? Exception in thread “main” java.lang.NoSuchMethodError Java错误:线程“main”中的异常java.lang.NoSuchMethodError:main - Java error: Exception in thread “main” java.lang.NoSuchMethodError: main 异常java.lang.NoSuchMethodError - Exception java.lang.NoSuchMethodError AWS Textract:线程“main”中的异常 java.lang.NoSuchMethodError - AWS Textract: Exception in thread "main" java.lang.NoSuchMethodError 线程“main”中的异常 java.lang.NoSuchMethodError: main - Exception in thread "main" java.lang.NoSuchMethodError: main 线程“ main”中的JNI GetMethodID异常java.lang.NoSuchMethodError: <method> - JNI GetMethodID Exception in thread “main” java.lang.NoSuchMethodError: <method> 为什么线程“ main”中的异常java.lang.NoSuchMethodError:main? - Why Exception in thread “main” java.lang.NoSuchMethodError: main? 线程“ main”中的异常java.lang.NoSuchMethodError:main //有什么问题? - Exception in thread “main” java.lang.NoSuchMethodError: main // What is wrong?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM