這篇文章解釋了如何解決一個問題運行應用程序,使用磚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)
解決方案
為了避免這個問題:
- 直接下載超級CosmosDB-Spark連接器JAR:azure-cosmosdb-spark_2.3.0_2.11-1.2.2-uber.jar。
- 上傳下載的JAR磚後的指令在上傳一個JAR, Python雞蛋,或Python輪(AWS|Azure)。
- 安裝上傳圖書館作為Cluster-installed庫(AWS|Azure)