提问人:Shawn Eary 提问时间:11/16/2023 更新时间:11/17/2023 访问量:20
使用增量实时表时本地卷文件的正确路径
Correct Path to Local Volume Files When Using Delta Live Tables
问:
我将以下文件放在名为 livelandingtest 的本地 Databricks 卷中:
/Volumes/seary_test/default/livelandingtest/TIOBE/TIOBE-2018-09.csv
此外,我有以下代码尝试对 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 文件?
答:
问题不一定是上面列出的路径。在创建增量实时表 (DLT) 管道时,我似乎没有选择正确的设置。当我在“目标存储选项”下选择seary_test目录并在上述代码的第 #2 行添加 STREAMING 关键字时,我的 DLT 管道能够启动:
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 目录。
评论