我有一个服务主体,该主体有权读取 Eventhub 上的主题。我想阅读其中的主题并尝试以下操作:
# Event Hub connection string using Service Principal (SAS)
eventhub_conn_str = f"Endpoint=sb://{namespace}/;SharedAccessKeyName={client_id};SharedAccessKey={client_secret}"
# Setting up the Azure Event Hubs Spark connector
event_hub_config = {
'eventhubs.connectionString':eventhub_conn_str,
'eventhubs.consumerGroup': consumer_group,
'eventhubs.maxEventsPerTrigger': '1000'
}
# Read from Event Hub using Spark Structured Streaming
raw_events = (
spark.readStream
.format("eventhubs")
.option("startingPosition", "@latest")
.options(**event_hub_config)
.load()
)
但是,我总是收到以下错误:
java.lang.IllegalArgumentException: Input byte array has wrong 4-byte ending unit
我的身份验证似乎失败(使用任何密码时都会出现相同的错误)。如何使用 client_id 和 client_secret 进行身份验证?