Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark spark结构化流媒体中的Jackson版本问题_Apache Spark_Jackson_Jackson Databind - Fatal编程技术网

Apache spark spark结构化流媒体中的Jackson版本问题

Apache spark spark结构化流媒体中的Jackson版本问题,apache-spark,jackson,jackson-databind,Apache Spark,Jackson,Jackson Databind,当将spark结构化流媒体与spark-sql-kafka-0-10_2.11一起使用时,我看到了MethodNotFoundError。基于另一个问题 我试图明确设置杰克逊版本 版本2.9.6、2.4.3、2.9.0已经过试用。2.4.3说“杰克逊版本太旧了”。其他版本说 原因:com.fasterxml.jackson.databind.JsonMappingException: 不兼容的Jackson版本:2.9.0 以下是2.9.0的完整ST: 19/05/10 11:30:18 ERR

当将
spark结构化流媒体
spark-sql-kafka-0-10_2.11
一起使用时,我看到了
MethodNotFoundError
。基于另一个问题 我试图明确设置杰克逊版本

版本2.9.6、2.4.3、2.9.0已经过试用。
2.4.3
说“杰克逊版本太旧了”。其他版本说

原因:com.fasterxml.jackson.databind.JsonMappingException: 不兼容的Jackson版本:2.9.0

以下是
2.9.0
的完整ST:

19/05/10 11:30:18 ERROR MicroBatchExecution: Query [id = dbd581ba-42d7-4496-9fde-fe04dab6e7b4, runId = b5b023df-cb39-4048-90dc-e9a57cce4883] terminated with error
java.lang.ExceptionInInitializerError
    at org.apache.spark.sql.execution.SparkPlan.executeQuery(SparkPlan.scala:152)
    at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:127)
    at org.apache.spark.sql.execution.SparkPlan.getByteArrayRdd(SparkPlan.scala:247org.apache.spark.sql.Dataset$$anonfun$53.apply(Dataset.scala:3365)
    at org.apache.spark.sql.execution.SQLExecution$$anonfun$withNewExecutionId$1.apply(SQLExecution.scala:78)
    at org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:125)
    at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:73)
    at org.apache.spark.sql.Dataset.withAction(Dataset.scala:3364)
    at org.apache.spark.sql.Dataset.collect(Dataset.scala:2783)
    at org.apache.spark.sql.execution.streaming.MicroBatchExecution$$anonfun$org$apache$spark$sql$execution$streaming$MicroBatchExecution$$runBatch$5$$anonfun$apply$17.apply(MicroBatchExecution.scala:537)
    at org.apache.spark.sql.execution.SQLExecution$$anonfun$withNewExecutionId$1.apply(SQLExecution.scala:78)
    at      at org.apache.spark.sql.execution.streaming.ProgressReporter$class.reportTimeTaken(ProgressReporter.scala:351)
    at 
 ..
org.apache.spark.sql.execution.streaming.StreamExecution$$anon$1.run(StreamExecution.scala:189)
    Caused by: com.fasterxml.jackson.databind.JsonMappingException: 
   Incompatible Jackson version: 2.9.0
        at com.fasterxml.jackson.module.scala.JacksonModule$class.setupModule(JacksonModule.scala:64)
        at com.fasterxml.jackson.module.scala.DefaultScalaModule.setupModule(DefaultScalaModule.scala:19)
        at com.fasterxml.jackson.databind.ObjectMapper.registerModule(ObjectMapper.java:751)
        at org.apache.spark.rdd.RDDOperationScope$.<init>(RDDOperationScope.scala:82)
        at org.apache.spark.rdd.RDDOperationScope$.<clinit>(RDDOperationScope.scala)
以及AWS的类似排除

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.7.4</version>
       <exclusions>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

亚马逊网站
aws java sdk
1.7.4
com.fasterxml.jackson.core
杰克逊核心
com.fasterxml.jackson.core
杰克逊数据绑定

有什么想法可以解决这里的jackson版本问题吗?

通过查找$SPARK\u HOME/jars目录并搜索
jackson数据绑定找到答案:

$ll *jackson-databind*
-rw-r--r--@ 1 steve  staff  1165323 Mar 26 17:13 jackson-databind-2.6.7.1.jar
因此,然后更新

    <jackson.databind.version>2.6.7</jackson.databind.version>
2.6.7

已解决问题。

对于Scala,请在build.sbt文件中添加:

dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.6.7"
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.6.7"