Synapse 上的 Azure 事件中心 maven 包安装

问题描述

我正在测试 Azure Synapse Analytics 中的 Spark 功能,作为 DataBricks 的替代方案。我正在尝试实施适用于 Azure Synapse 上的 DataBricks 的 Delta Lake 作业。

为了从事件中心接收消息,我有以下 pyspark 代码

conf = {}
conf["eventhubs.connectionString"] = connectionString
read_df = (
  sc
    .readStream
    .format("eventhubs")
    .options(**conf)
    .load()
)

代码收到错误java.lang.classNotFoundException: Failed to find data source: eventhubs”,除非安装了 maven 包 com.microsoft.azure:azure-eventhubs-spark_x:X。

我被困在如何安装那个包上。

我尝试将其添加到名为 job_props.txt 的 spark 属性文件中,内容如下:

spark.jars.packages com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.13

当我将此文件添加到 Spark 集群的“Spark 配置文件”选项时,集群在启动时失败并出现 Livy 进程终止错误

如何为 Azure Synapse 中的 PySpark 作业安装 Azure 事件中心包?

解决方法

从我们的 Microsoft 客户代表那里得到了一个答案。

根据他们的说法,此时您无法像在 Databricks 中那样在 Synapse Spark Pool 中读取 Kafka。问题是,尽管突触火花池允许您加载 python 库,但 Kafka python 库实际上包装了目前不支持的 java 库。