如何检查Data Lake表中是否有记录

时间:2017-05-01 23:25:49

标签: azure-data-lake u-sql

在SQL中我们可以做IF存在(从表中选择*)或IF(从表中选择count(*))= 3,Data Lake / U-SQL中是否有相同的函数?

感谢。

1 个答案:

答案 0 :(得分:2)

U-SQL是一种声明性查询语言,目前不允许您根据带有IF语句的值更改控制流(此时IF语句在编译时执行)。

您希望在不同的IF分支中做什么?

现在,根据您在IF子句中的操作,您有不同的选择:

  1. 将您的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;
    

    如果您的病情取决于不同的表,您可能需要进行(交叉)联接以使条件相关。

  2. 将脚本拆分为较小的脚本,并使用ADF或Powershell进行控制流程。这可能意味着您创建了下载的中间结果,因此我通常更喜欢1。

  3. 最后但并非最不重要:通常可能有一种声明性的方式表达你的逻辑,可以首先避免条件。