Hi,
    Please check the versions of jar files starting with "jackson-". Make sure 
all versions are consistent.  jackson jar list in spark-3.3.0:
================
2022/06/10  04:37            75,714 jackson-annotations-2.13.3.jar
2022/06/10  04:37           374,895 jackson-core-2.13.3.jar
2022/06/10  04:37           232,248 jackson-core-asl-1.9.13.jar
2022/06/10  04:37         1,536,542 jackson-databind-2.13.3.jar
2022/06/10  04:37            52,020 jackson-dataformat-yaml-2.13.3.jar
2022/06/10  04:37           121,201 jackson-datatype-jsr310-2.13.3.jar
2022/06/10  04:37           780,664 jackson-mapper-asl-1.9.13.jar
2022/06/10  04:37           458,981 jackson-module-scala_2.12-2.13.3.jar
================
Spark 3.3.0 uses Jackson version 2.13.3, while Spark 3.5.0 uses Jackson version 
2.15.2. I think you can remove the lower version of Jackson package to keep the 
versions consistent.
eabour
 
From: moshik.vi...@veeva.com.INVALID
Date: 2023-11-01 15:03
To: user@spark.apache.org
CC: 'Saar Barhoom'
Subject: jackson-databind version mismatch
Hi Spark team,
 
On upgrading spark version from 3.2.1 to 3.4.1 got the following issue:
java.lang.NoSuchMethodError: 'com.fasterxml.jackson.core.JsonGenerator 
com.fasterxml.jackson.databind.ObjectMapper.createGenerator(java.io.OutputStream,
 com.fasterxml.jackson.core.JsonEncoding)'
                at 
org.apache.spark.util.JsonProtocol$.toJsonString(JsonProtocol.scala:75)
                at 
org.apache.spark.SparkThrowableHelper$.getMessage(SparkThrowableHelper.scala:74)
                at 
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$7(SQLExecution.scala:127)
                at scala.Option.map(Option.scala:230)
                at 
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$6(SQLExecution.scala:125)
                at 
org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:195)
                at 
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$1(SQLExecution.scala:103)
                at 
org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:827)
                at 
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:65)
                at org.apache.spark.sql.Dataset.withAction(Dataset.scala:4165)
                at org.apache.spark.sql.Dataset.head(Dataset.scala:3161)
                at org.apache.spark.sql.Dataset.take(Dataset.scala:3382)
                at org.apache.spark.sql.Dataset.takeAsList(Dataset.scala:3405)
                at 
com.crossix.safemine.cloud.utils.DebugRDDLogger.showDataset(DebugRDDLogger.java:84)
                at 
com.crossix.safemine.cloud.components.statistics.spark.StatisticsTransformer.getFillRateCountsWithSparkQuery(StatisticsTransformer.java:122)
                at 
com.crossix.safemine.cloud.components.statistics.spark.StatisticsTransformer.calculateStatistics(StatisticsTransformer.java:61)
                at 
com.crossix.safemine.cloud.components.statistics.spark.SparkFileStatistics.execute(SparkFileStatistics.java:102)
                at 
com.crossix.safemine.cloud.StatisticsFlow.calculateAllStatistics(StatisticsFlow.java:146)
                at 
com.crossix.safemine.cloud.StatisticsFlow.runStatistics(StatisticsFlow.java:119)
                at 
com.crossix.safemine.cloud.StatisticsFlow.initialFileStatistics(StatisticsFlow.java:77)
                at com.crossix.safemine.cloud.SMCFlow.process(SMCFlow.java:221)
                at com.crossix.safemine.cloud.SMCFlow.execute(SMCFlow.java:132)
                at com.crossix.safemine.cloud.SMCFlow.run(SMCFlow.java:91)
                
I see that that spark package contains the dependency:
com.fasterxml.jackson.core:jackson-databind:jar:2.10.5:compile
 
But jackson-databind 2.10.5 does not contain 
ObjectMapper.createGenerator(java.io.OutputStream, 
com.fasterxml.jackson.core.JsonEncoding)
It was added on 2.11.0
 
Trying to upgrade jackson-databind fails with:
com.fasterxml.jackson.databind.JsonMappingException: Scala module 2.10.5 
requires Jackson Databind version >= 2.10.0 and < 2.11.0
 
According to spark 3.3.0 release notes: "Upgrade Jackson to 2.13.3" but spark 
package of 3.4.1 contains Jackson of 2.10.5
(https://spark.apache.org/releases/spark-release-3-3-0.html)
What am I missing?
 
--
Moshik Vitas
Senior Software Developer, Crossix
Veeva Systems
m: +972-54-5326-400
moshik.vi...@veeva.com
 

Reply via email to