[英]Could not instantiate EventHubSourceProvider for Azure Databricks
使用結構化流式傳輸 pyspark中記錄的步驟,我無法從我已設置的 Azure 事件中心在pyspark中創建 dataframe 以讀取 stream 數據。
錯誤信息是: java.util.ServiceConfigurationError: org.apache.spark.sql.sources.DataSourceRegister: Provider org.apache.spark.sql.eventhubs.EventHubsSourceiProvider 無法被instanthubs.EventHubsSourceiProvider
我已經安裝了 Maven 庫(com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.12 不可用),但似乎都不起作用:com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.15 com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.6
以及ehConf['eventhubs.connectionString'] = sc._jvm.org.apache.spark.eventhubs.EventHubsUtils.encrypt(connectionString)
但返回的錯誤消息是:
java.lang.NoSuchMethodError: org.apache.spark.internal.Logging.$init$(Lorg/apache/spark/internal/Logging;)V
連接字符串是正確的,因為它也用於寫入 Azure 事件中心並且有效的控制台應用程序。
請有人指出我正確的方向。 使用中的代碼如下:
from pyspark.sql.functions import *
from pyspark.sql.types import *
# Event Hub Namespace Name
NAMESPACE_NAME = "*myEventHub*"
KEY_NAME = "*MyPolicyName*"
KEY_VALUE = "*MySharedAccessKey*"
# The connection string to your Event Hubs Namespace
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
# For 2.3.15 version and above, the configuration dictionary requires that connection string be encrypted.
# ehConf['eventhubs.connectionString'] = sc._jvm.org.apache.spark.eventhubs.EventHubsUtils.encrypt(connectionString)
df = spark \
.readStream \
.format("eventhubs") \
.options(**ehConf) \
.load()
為了解決這個問題,我做了以下事情:
在運行 Spark 3.0 和 Z3012DCFF14577C9FEABB87 的 Spark 集群上安裝版本號為 com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.* 的庫時,我收到了同樣的錯誤。
對於通過谷歌找到這個的其他人 - 檢查您是否擁有正確的 Scala 庫版本。 就我而言,我的集群是帶有 Scala 2.12 的 Spark v3
將庫版本中的“2.11”從我使用的教程更改為“2.12”,因此它與我的集群運行時版本匹配,解決了這個問題。
我不得不更進一步。 在我必須添加的格式方法中:
.format("org.apache.spark.sql.eventhubs.EventHubsSourceProvider") 直接。
檢查集群 scala 版本和庫版本 卸載舊庫並安裝:com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.17 在共享工作區(右鍵單擊並安裝庫)以及集群中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.