Azure Databricks:在另一个工作区中使用的 Mount delta table

Azure Databricks : Mount delta table used in another workspace

目前我有一个 azure databricks 实例,其中包含以下内容

myDF.withColumn("created_on", current_timestamp())\
.writeStream\
.format("delta")\
.trigger(processingTime= triggerDuration)\
.outputMode("append")\
.option("checkpointLocation", "/mnt/datalake/_checkpoint_Position")\
.option("path", "/mnt/datalake/DeltaData")\
.partitionBy("col1", "col2", "col3", "col4", "col5")\
.table("deltadata")

这是将数据作为 blob 保存到存储帐户中。

现在,我正在尝试从另一个 azure databricks 工作区连接到这个 table,我的第一个“移动”是挂载到 azure 存储帐户:

dbutils.fs.mount(
    source = sourceString,
    mountPoint = "/mnt/data",
    extraConfigs = Map(confKey -> sasKey)

注意:由于显而易见的原因未显示 sourceString、confKey 和 sasKey,无论如何挂载都可以正常工作。

然后我尝试创建 table,但出现错误:

CREATE TABLE delta_data USING DELTA LOCATION '/mnt/data/DeltaData/'

Error in SQL statement: AnalysisException: 
You are trying to create an external table `default`.`delta_data`
from `/mnt/data/DeltaData` using Databricks Delta, but the schema is not specified when the
input path is empty.

根据文档,模式应该从现有数据中获取,对吗? 此外,我尝试在不同的工作区中执行此操作,因为我的想法是只授予人们读取权限。

看来我的问题是坐骑。它在创建时没有给出任何错误,但工作不正常。我在尝试后发现了这一点:

dbutils.fs.ls("/mnt/data/DeltaData")

没有显示任何内容。我卸载并检查了所有配置,然后它就起作用了。