计划触发器数据块管道时 Spark SQL 解析错误

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

我正在我的 pyspark SQL 中执行合并或查询语句,并且笔记本在手动运行时完美执行,但如果我在 databricks 工作流程中安排管道,则会出现以下错误。请帮助我提供您的反馈。

dbutils.widgets.text("catalogname","test")
unity_catalog_name = dbutils.widgets.get("catalogname")
%sql
select * $catalogname.schema.tablename

当我在计划管道中执行时出现如下错误

[PARSE_SYNTAX_ERROR] Syntax error at or near '.'. SQLSTATE: 42601
apache-spark-sql azure-databricks
1个回答
0
投票

您必须使用 SQL

IDENTIFIER()
子句将字符串解析为对象标识符,例如数据库、表、视图、函数、列和字段的名称。

因此,根据上面的带有

 IDENTIFIER()
子句的新查询将如下所示:


%sql

select  *  from IDENTIFIER(:catalogname ||  '.schema.tablename' )

我对计划触发器的执行如下,您可以在其中看到计划触发器启动的管道:

enter image description here

注意:我收到的错误是因为我的数据块中没有这样的表

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