使用增量实时表时本地卷文件的正确路径

Correct Path to Local Volume Files When Using Delta Live Tables

提问人:Shawn Eary 提问时间:11/16/2023 更新时间:11/17/2023 访问量:20

问:

我将以下文件放在名为 livelandingtest 的本地 Databricks 卷中:
/Volumes/seary_test/default/livelandingtest/TIOBE/TIOBE-2018-09.csv
enter image description here

此外,我有以下代码尝试对 livelandingtest/TIOBE 目录中的任何文件进行自动加载:

-- https://www.databricks.com/discover/pages/getting-started-with-delta-live-tables
CREATE LIVE TABLE TIOBE_Live_Test_Bronze
COMMENT "Auto Loader Test"
TBLPROPERTIES ("quality" = "bronze")
AS
SELECT * FROM cloud_files(
   "dbfs:/Volumes/seary_test/default/livelandingtest/TIOBE/*", 
   "csv", 
   map("cloudFiles.inferColumnTypes", "true")
);

当我将上述代码作为增量实时表工作流运行时,出现以下错误:
java.lang.IllegalArgumentException:无法从此位置访问 UC 卷路径。路径为 /Volumes/seary_test/default/livelandingtest/TIOBE/

我应该在第 6-10 行的 FROM 子句中使用什么语法来访问本地卷 /Volumes/seary_test default/livelandingtest 中的 CSV 文件?

SQL Databricks 增量实时表

评论


答:

0赞 Shawn Eary 11/17/2023 #1

问题不一定是上面列出的路径。在创建增量实时表 (DLT) 管道时,我似乎没有选择正确的设置。当我在“目标存储选项”下选择seary_test目录并在上述代码的第 #2 行添加 STREAMING 关键字时,我的 DLT 管道能够启动:enter image description here

STREAMING 关键字已添加到下面的 Line#2 中

-- https://www.databricks.com/discover/pages/getting-started-with-delta-live-tables
CREATE STREAMING LIVE TABLE TIOBE_Live_Test_Bronze
COMMENT "Auto Loader Test"
TBLPROPERTIES ("quality" = "bronze")
AS
SELECT * FROM cloud_files(
   "dbfs:/Volumes/seary_test/default/livelandingtest/TIOBE/*", 
   "csv", 
   map("cloudFiles.inferColumnTypes", "true")
);

由于我是 DLT 的新手,我不完全确定为什么需要 STREAMING 关键字。我想这与我对cloud_files功能的使用有关。但是,访问 /Volumes/seary_test/default/livelandingtest/TIOBE/* 路径的关键因素似乎是在通过 Web GUI 创建管道时需要在 Destination 部分下选择我的 seary_test 目录。