gpt4 book ai didi

java - NoSuchMethodError : scala. collection.mutable.Buffer$.empty()Lscala/collection/GenTraversable

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:55 27 4
gpt4 key购买 nike

当前我正在编译 JAR 文件,但由于出现标题中的错误,因此无法运行 JAR。我使用 sbt assembly 进行编译,以便包含所有依赖项。

斯卡拉 2.11.12 Spark 2.4.2

package com.foo.bar

import org.apache.spark.sql.SparkSession
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import Array._

object DebugApp extends App {

override def main(args: Array[String]) {
if (args.length == 0) {
println("Must pass in args: sparkMaster, dataPath")
}
val sparkMaster = args(0)
val bucket = args(1)
val dataPath = args(2)
val parsedDestionationPath = args(3)
val rawDestionationPath = args(4)

val spark = SparkSession
.builder()
.config("spark.driver.extraJavaOptions", "-Dlog4jspark.root.logger=WARN,console")
.appName("Parser")
.master(sparkMaster)
.getOrCreate()
}
}

错误的前 2 行显示这是来自 Spark:

Exception in thread "main" java.lang.NoSuchMethodError: scala.collection.mutable.Buffer$.empty()Lscala/collection/GenTraversable; at org.apache.spark.sql.SparkSessionExtensions.(SparkSessionExtensions.scala:72)

进一步的上下文是我在 build.sbt 中使用的依赖项:

scalaVersion in ThisBuild := "2.11.12"
fork in run := true
...
val sparkV = "2.4.2"
val spark = "org.apache.spark" %% "spark-core" % sparkV
val sparkSql = "org.apache.spark" %% "spark-sql" % sparkV
val sparkHive = "org.apache.spark" %% "spark-hive" % sparkV

最佳答案

简单来说,如果要在本地运行 Spark(v2.4.x),则必须将 Hadoop 指定为 2.6.5。您可以使用任何版本的 AWS Java SDK,但 Hadoop 专门锁定为该版本。如果您希望避免此问题,明智的做法是通过以下两种方式之一将文件上传到 S3:

  • 从您的 JAR 中,使用 TransferManager
    • 在 v1.11.600 中,存在一个错误,导致其使用 org.apache.httpcomponents.httpclient 4.5.8,这可能会导致日志泛滥
  • 使用 aws s3sync 来自 bash 脚本 <-- 推荐

关于java - NoSuchMethodError : scala. collection.mutable.Buffer$.empty()Lscala/collection/GenTraversable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57207075/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com