2017-02-23 96 views
1

我已經爲SparkSQL編寫了一個代碼。我用Eclipse Neon運行它。它工作正常。當我轉向IntelliJ Idea時,相同的代碼沒有運行。
下面是代碼:Apache Spark在IntelliJ中給出錯誤

SparkSession spark = SparkSession 
      .builder() 
      .appName("Java Spark Hive Example") 
      .master("local[*]") 
      .config("hive.metastore.uris", "thrift://localhost:9083") 
      .enableHiveSupport() 
      .getOrCreate(); 
spark.sql("select survey_response_value from health").show(); 

我得到的例外是:
https://justpaste.it/13tsa
請讓我知道爲什麼我面對這個問題。我如何解決這個問題?我應該從一開始使用IntelliJ編寫代碼還是有任何幫助機制?

+0

'原因:com.fasterxml.jackson.databind.JsonMappingException:傑克遜版本太舊2.5.1':http://stackoverflow.com/a/38689045/104891,http://stackoverflow.com/ q/40957294/104891 – CrazyCoder

回答

5

問題是這樣的例外:

com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.5.1 

基本上,星火使用傑克遜的版本2.6.5,但您使用的放傑克遜的舊版本(2.5.1)在類路徑依賴的另一個。很難說Eclipse和IntelliJ之間爲什麼不同,但我的猜測是他們建立了不同的類路徑,所以使用Eclipse時,正確的版本首先被放置。

有關於這個錯誤的SO幾個問題,如:

對於我來說,使用星火2.x中,加入以下您的build.sbt確保使用正確的版本:

dependencyOverrides ++= Set(
    "com.fasterxml.jackson.core" % "jackson-annotations" % "2.6.5", 
    "com.fasterxml.jackson.core" % "jackson-core" % "2.6.5", 
    "com.fasterxml.jackson.core" % "jackson-databind" % "2.6.5" 
) 
+0

謝謝你的回答。它有助於.. :) –

相關問題