我在同一资源组下有两个存储帐户(STORAGE_ACCOUNT_A 和 STORAGE_ACCOUNT_B),并且我已经设置了 Spark Streaming 作业(自动加载器)。
df = Spark.readStream.format(“cloudFiles”)
.option("cloudFiles.useNotifications", "true")
.option("cloudFiles.tenantId", "XXXX")
.option("cloudFiles.subscriptionID", "XXXX")
.option("cloudFiles.resourceGroup", "XXXX")
.option("cloudFiles.clientId", "XXXX")
.option("cloudFiles.clientSecret", "XXXX")
.option("cloudFiles.format", "csv")
.option("标题", "真")
.架构(架构)
.load(源路径)
但是当我转移到 source_path 中的其他存储帐户时,会出现如下错误。
java.lang.IllegalStateException:文件事件
{"create":{"bucket":"CONTAINER@STORAGE_ACCOUNT_B","key":"workbench/data/Landing/table/file.csv","size":800,"eventTime":1706107083508,"sequencer":"0000000000000000000000000002def9000000000000279c","newerThan$default$2":false}}
中的容器与源预期的不同:CONTAINER@STORAGE_ACCOUNT_A
。
Spark Autoloader 无意中读取在资源组级别触发的新文件创建事件,从而影响从新迁移的存储帐户中提取数据。如何限制Spark Autoloader选择性地消耗仅与迁移的存储帐户相关的文件事件/队列,确保数据处理准确