CosmosDB-Spark連接器圖書館衝突

學習如何解決衝突時出現與磚使用CosmosDB-Spark連接器庫。

寫的亞當Pavlacka

去年發表在:2022年6月1日

這篇文章解釋了如何解決一個問題運行應用程序,使用磚CosmosDB-Spark連接器的環境。

問題

通常如果你添加一個Maven依賴火花集群,應用程序應該能夠使用所需的連接器庫。但目前,如果你簡單地指定CosmosDB-Spark連接器的Maven坐標作為集群的依賴,你會得到以下異常:

. lang。com.microsoft.azure.cosmosdb.Document NoClassDefFoundError:無法初始化類

導致

這是因為火花2.3使用jackson-databind-2.6.7.1,而CosmosDB-Spark連接器使用jackson-databind-2.9.5。這將創建一個庫衝突和執行人層麵您遵守以下例外:

. lang。NoSuchFieldError: ALLOW_TRAILING_COMMA com.microsoft.azure.cosmosdb.internal.Utils。< clinit > (Utils.java: 69)

解決方案

為了避免這個問題:

  1. 直接下載超級CosmosDB-Spark連接器JAR:azure-cosmosdb-spark_2.3.0_2.11-1.2.2-uber.jar
  2. 上傳下載的JAR磚後的指令在上傳一個JAR, Python雞蛋,或Python輪(AWS|Azure)。
  3. 安裝上傳圖書館作為Cluster-installed庫(AWS|Azure)

有關更多信息,請參見Azure宇宙DB (AWS|Azure)。