java - 在 java Spark 中使用 Jackson 2.9.9
问题描述
我正在尝试使用 MLLIB 库(java),但我的依赖项之一使用 Jackson 2.9.9。我注意到提出了一个拉取请求,以便将主分支的依赖项升级到这个特定版本。现在我想使用这个 master 分支,所以我使用./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 中,它为 JAVA_9 引入了apache common-lang3。您是否检查过 apache common-lang3 是否包含在类路径中?它通过将 commons-lang3-3.9.jar 添加到我的类路径来解决我的问题。
推荐阅读
- r - 如何使用 data.table 有效地计算一个数据集中的 GPS 点与另一个数据集中的 GPS 点之间的距离
- google-sheets - 提取引号之间的文本谷歌表
- c# - 列表中的验证错误消息 (Listview)
- react-native - 在设备 react-native 窗口和 android 上构建和安装应用程序
- angular - 从 Opentok.js 订阅者获取 MediaStream
- c# - 更新包含实体框架中对象列表的对象的最佳方法
- bash - 当 FreeBSD 上温度过高时,Bash 脚本会发出哔哔声
- arrays - reactjs ref 仅适用于数组中的最后一个元素
- javascript - 如何显示画廊的第一张图片?
- powershell - Powershell - 在 foreach 中检查变量的值 - 如果没有值,则记录其他输出