Azure Databricks:装载在另一个工作区中使用的增量表

问题描述

目前我有一个 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 工作区连接到此表,我的第一个“移动”是挂载到 azure 存储帐户:

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

注意:由于明显的原因,sourceString、confKey 和 sasKey 没有显示,无论如何挂载工作正常。

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

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")

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