ADLS Gen 1 中 DELTA 格式文件的外部 Table

External Table on DELTA format files in ADLS Gen 1

我们在 ADLS Gen1 上创建了 DELTA table 个数据块。而且,在其中一个数据块工作区中的每个 table 之上构建了外部 table。

类似地,我正在尝试在相同的 DELTA 格式文件上创建相同类型的外部 tables,但在不同的工作区中。
我确实通过 ADLS Gen1 上的服务原则具有只读访问权限。所以我可以通过 spark 数据帧读取 DELTA 文件,如下所示:

read_data_df = spark.read.format("delta").load('dbfs:/mnt/data/<foldername>')

我什至可以创建配置单元外部 tables,但是我在从同一个 table:

读取数据时确实看到了以下警告

Error in SQL statement: AnalysisException: Incompatible format detected.

A transaction log for Databricks Delta was found at `dbfs:/mnt/data/<foldername>/_delta_log`,
but you are trying to read from `dbfs:/mnt/data/<foldername>` using format("hive"). You must use
'format("delta")' when reading and writing to a delta table.

To disable this check, SET spark.databricks.delta.formatCheck.enabled=false
To learn more about Delta, see https://docs.microsoft.com/azure/databricks/delta/index
;

如果我创建外部 table 'using DELTA',那么我会看到一个不同的访问错误,如:

Caused by: org.apache.hadoop.security.AccessControlException: 
OPEN failed with error 0x83090aa2 (Forbidden. ACL verification failed. 
Either the resource does not exist or the user is not authorized to perform the requested operation.). 
failed with error 0x83090aa2 (Forbidden. ACL verification failed.
Either the resource does not exist or the user is not authorized to perform the requested operation.). 

这是否意味着我需要完全访问权限,而不是只读?,对那些位于文件系统下的文件?

谢谢

将 Databricks Runtime 环境升级到运行时版本 DBR-7.3 后解决。