【问题标题】:Spark on AWS EMR: java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)VAWS EMR 上的 Spark:java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V
【发布时间】:2020-02-02 16:08:51
【问题描述】:

我正在尝试将 Scala 2.12.0 + Spark 2.4.4 应用程序部署到 AWS EMR。 我在 EMR 中启用了 Spark 2.4.4。

应用程序运行时失败并出现以下错误:

java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V

我正在使用“sbt-assembly”插件构建 jar。我专门从组装好的 jar 中删除了“org/apache/spark/”,以确保版本之间没有冲突。

【问题讨论】:

    标签: scala apache-spark amazon-emr


    【解决方案1】:

    虽然 Spark 2.4.4 据称支持 Scala 2.12.x,但 EMR 似乎不支持它。

    相反,必须使用 Scala 2.11 构建。

    例如在 build.sbt 文件中:

    scalaVersion := "2.11.12"
    

    【讨论】:

    • 您使用的是 EMR 5.29 吗?
    • 实际上,我可以在 EMR 5.29 和 Spark 2.4.4 上使用 Scala 2.12,但是如果我包含 Scallop(即使对于 Scala 2.12),那么我会收到您所描述的错误,因为我们现在坚持使用扇贝,我不得不转向 Scala 2.11.12 才能使事情正常进行。希望这可以帮助其他人访问此页面。
    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 2017-03-16
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多