如何检查数据湖中是否有记录 table
How to check if there is records in a Data Lake table
在SQL中,我们可以执行 IF Exists(select * from table) 或 IF (select count(*) from table) = 3、Data Lake/U-SQL?
中是否有等价函数
谢谢。
U-SQL 只是一种声明式查询语言,目前不允许您使用 IF 语句更改基于值的控制流(此时的 IF 语句在编译时执行)。
您想在不同的 IF 分支中做什么?
现在,根据您想在 IF 子句中执行的操作,您有不同的选择:
将您的 IF 条件移动到查询谓词中(例如,
@res =
SELECT a, b, c FROM @x WHERE condition
UNION ALL
SELECT a, b, c FROM @y WHERE !condition;
而不是
IF (condition) THEN
@res = SELECT a, b, c FROM @x;
ELSE
@res = SELECT a, b, c FROM @y;
END;
如果您的条件取决于不同的 table,您可能需要进行(交叉)连接以使条件相关。
将您的脚本拆分为更小的脚本并使用 ADF 或 Powershell 控制流程。这可能意味着你创建了你下载的中间结果,所以我通常更喜欢 1.
最后但同样重要的是:通常可能有一种声明性的方式来表达您的逻辑,首先可以避免条件。
在SQL中,我们可以执行 IF Exists(select * from table) 或 IF (select count(*) from table) = 3、Data Lake/U-SQL?
中是否有等价函数谢谢。
U-SQL 只是一种声明式查询语言,目前不允许您使用 IF 语句更改基于值的控制流(此时的 IF 语句在编译时执行)。
您想在不同的 IF 分支中做什么?
现在,根据您想在 IF 子句中执行的操作,您有不同的选择:
将您的 IF 条件移动到查询谓词中(例如,
@res = SELECT a, b, c FROM @x WHERE condition UNION ALL SELECT a, b, c FROM @y WHERE !condition;
而不是
IF (condition) THEN @res = SELECT a, b, c FROM @x; ELSE @res = SELECT a, b, c FROM @y; END;
如果您的条件取决于不同的 table,您可能需要进行(交叉)连接以使条件相关。
将您的脚本拆分为更小的脚本并使用 ADF 或 Powershell 控制流程。这可能意味着你创建了你下载的中间结果,所以我通常更喜欢 1.
最后但同样重要的是:通常可能有一种声明性的方式来表达您的逻辑,首先可以避免条件。