You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Databricks中EventHubsSourceProvider无法实例化问题求助

解决Azure Databricks读取Event Hub时的ServiceConfigurationError错误

问题原因

你遇到的java.util.ServiceConfigurationError是由于Azure Event Hubs Spark连接器版本与Databricks Runtime版本不兼容导致的:

  • 当前使用的com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.22仅支持Spark 3.0~3.2版本
  • 而Databricks Runtime 14.2搭载的是Spark 3.5.0,超出了该连接器的支持范围,导致EventHubsSourceProvider无法正常实例化。

解决方案

1. 替换为兼容的连接器版本

卸载旧版本连接器,安装适配Spark 3.5的兼容版本:

  • 推荐安装com.microsoft.azure:azure-eventhubs-spark_2.12:3.4.1(该版本支持Spark 3.3~3.5,适配Databricks Runtime 13.x~14.x)

2. 操作步骤

  • 进入Databricks集群的库管理页面
  • 找到已安装的com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.22,点击删除
  • 点击安装新库,选择Maven来源,在坐标栏输入com.microsoft.azure:azure-eventhubs-spark_2.12:3.4.1,确认安装
  • 安装完成后重启集群,确保新库生效

3. 验证代码

原有代码逻辑无需修改,重启集群后重新执行即可正常读取Event Hub数据:

from pyspark.sql.functions import *
from pyspark.sql.types import *

NAMESPACE_NAME = "*myEventHub*"
KEY_NAME = "*MyPolicyName*"
KEY_VALUE = "*MySharedAccessKey*"

connectionString = "Endpoint=sb://{0}.servicebus.windows.net/;SharedAccessKeyName={1};SharedAccessKey={2};EntityPath=ingestion".format(NAMESPACE_NAME, KEY_NAME, KEY_VALUE)

ehConf = {}
ehConf['eventhubs.connectionString'] = connectionString

df = spark \
  .readStream \
  .format("eventhubs") \
  .options(**ehConf) \
  .load()

额外注意事项

  • 后续升级Databricks Runtime时,务必确认Event Hubs连接器的版本兼容性,避免再次出现版本不匹配问题
  • 建议将Event Hub的密钥存储在Databricks Secrets中,避免明文暴露敏感信息

内容的提问来源于stack exchange,提问作者sparc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 15:22:20