Azure Data Bricks Widget 值初始化首次执行问题

问题描述 投票:0回答:1

我正在尝试将数据库名称和架构详细信息从 ADF 管道传递到 azure databricks 笔记本以使用我的创建和删除表,但如果我第一次尝试运行所有数据块脚本。由于小部件变量为空,我收到语法错误。请找到下面的代码并给我建议。

dbutils.widgets.removeAll()
dbutils.widgets.text("dbname","db")
dbname= dbutils.widgets.get("dbname")
dbutils.widgets.text("dbschema","dbschema")
dbschema= dbutils.widgets.get("dbschema")

drop table IF EXISTS $dbname.$dbschema.tablename;

[PARSE_SYNTAX_ERROR] Syntax error at or near '.'.(line 2, pos 21)

azure-data-factory azure-databricks
1个回答
0
投票

您遇到的语法错误是由 SQL 语句中不正确的字符串连接引起的。

我尝试过以下方法:

dbutils.widgets.removeAll()
dbutils.widgets.text("dbname","db")
dbname= dbutils.widgets.get("dbname")
dbutils.widgets.text("dbschema","dbschema")
dbschema= dbutils.widgets.get("dbschema")
sql_command = "DROP TABLE IF EXISTS " + dbname + "." + dbschema + ".tablename"
sql_command

结果:

'DROP TABLE IF EXISTS db.dbschema.tablename'

在上面的代码中,将 dbname 和 dbschema 变量的值与 SQL 语句连接起来。 然后,您可以在 Databricks SQL 语句中使用 sql_command 变量来删除该表。

© www.soinside.com 2019 - 2024. All rights reserved.