【发布时间】:2021-02-10 06:24:28
【问题描述】:
我在尝试让 Spark 加载、读取和查询 parquet 文件时遇到问题。基础设施似乎已设置好(Spark 独立 3.0),可以看到并将接手工作。
我遇到的问题是何时调用此行
Dataset<Row> parquetFileDF = sparkSession.read().parquet(parquePath);
抛出以下错误
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Scala module 2.10.0 requires Jackson Databind version >= 2.10.0 and < 2.11.0
at com.fasterxml.jackson.module.scala.JacksonModule.setupModule(JacksonModule.scala:61)
我查看了JacksonModule.setupModule,当它到达context.getMapperVersion 时,正在传递的版本是 2.9.10。在我看来,DefaultScalaModule 正在拉一些旧版本。
我正在使用 Gradle 构建并设置依赖项
implementation 'com.fasterxml.jackson.core:jackson-core:2.10.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.10.0'
implementation 'org.apache.spark:spark-core_2.12:3.0.0'
implementation 'org.apache.spark:spark-sql_2.12:3.0.0'
implementation 'org.apache.spark:spark-launcher_2.12:3.0.0'
implementation 'org.apache.spark:spark-catalyst_2.12:3.0.0'
implementation 'org.apache.spark:spark-streaming_2.12:3.0.0'
这不起作用,所以我尝试强制数据绑定
implementation ('com.fasterxml.jackson.core:jackson-databind') {
version {
strictly '2.10.0'
}
}
我尝试了几个不同的版本,但仍然遇到这个问题。也许我错过了一些超级简单的东西,但现在,我似乎无法克服这个错误。
任何帮助将不胜感激。
【问题讨论】:
-
如果您添加
gradle dependencies(或./gradlew dependencies,如果您正在使用包装器)的输出,您可能会获得更多帮助。
标签: java scala apache-spark jackson-databind