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)。

这篇文章有用吗?