java - 在 Java Spark 中使用 Jackson 2.9.9

标签 java apache-spark jackson apache-spark-mllib

我正在尝试使用 MLLIB 库 (java),但我的依赖项之一使用 Jackson 2.9.9。我注意到提出了一个拉取请求,以便主分支的依赖项升级到这个特定版本。现在我想使用这个主分支,所以我使用 ./dev/make-distribution.sh 克隆并安装了这个包。 .但不确定要将哪些 jar 包复制到我的项目中。我试图复制所有 3.0.0 快照,但最终得到了 class file for scala.Cloneable not found在我的java程序中。

我也做了一个 ./build/mvn -DskipTests install在 ~/.m2 下安装 SNAPSHOT 依赖项。

我将它们添加到 gradle 构建文件中

    // https://mvnrepository.com/artifact/org.apache.spark/spark-core
    compile group: 'org.apache.spark', name: 'spark-core_2.12', version: '3.0.0-SNAPSHOT'

    // https://mvnrepository.com/artifact/org.apache.spark/spark-mllib
    compile group: 'org.apache.spark', name: 'spark-mllib_2.12', version: '3.0.0-SNAPSHOT'

但是在 java 11 下执行时,它会提示:
Exception in thread "main" java.lang.NoSuchFieldError: JAVA_9
    at org.apache.spark.storage.StorageUtils$.<init>(StorageUtils.scala:207)

由于 java 9 不再可用,我想知道如何进一步调试这个问题。我假设至少需要 java 9 但该字段不再存在?

最佳答案

我注意到在源代码 StorageUtils.scala 中,它正在拉入 apache common-lang3 for JAVA_9 .您是否检查过类路径中是否包含 apache common-lang3?它通过将 commons-lang3-3.9.jar 添加到我的类路径解决了我的问题。

关于java - 在 Java Spark 中使用 Jackson 2.9.9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57519804/

相关文章:

java - bin目录下的java.exe是做什么的?

java - 通过代码签署 Office 文档(带证书)

apache-spark - Spark中的分区数和并发任务数是如何计算的

apache-spark - Spark 流: How to load a Pipeline on a Stream?

android - 使用改造获取 Jackson 的嵌套 JSON 对象

java - 从对象中获取类名

java - 使用具有复杂多态结构的 Jackson 反序列化 JSON

java - jar 中的 System.out.println

java - 每个应用程序如何创建 JVM 实例?

hadoop - yarn Spark 作业调度较慢