首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure数据湖-条件

Azure数据湖-条件
EN

Stack Overflow用户
提问于 2017-10-05 14:59:45
回答 1查看 170关注 0票数 2

我想使用if- data语句来决定我必须在哪个位置导出数据。我的案例是:

  1. 我从蔚蓝blob存储中提取了几个文件(,可能没有文件!!)。
  2. 我计算文件集中记录的计数。
  3. 如果记录的计数> 20,则将文件导出到特定的报表位置。
  4. 如果文件集中没有记录,则必须将虚拟空文件输出到不同的位置,因为我不希望用空报表替换现有的报表。

解决办法可能是IF..ELSE吐露。问题是,如果计算记录的计数,就会得到行集变量,而不能将其与标量变量进行比较。

代码语言:javascript
复制
@RECORDS =
SELECT COUNT(id) AS IdsCount
FROM @final; 


IF @RECORDS <= 20 THEN //generate dummy empty file 
    OUTPUT @final_result
    TO @EMPTY_OUTPUT_FILE
    USING Outputters.Text(delimiter : '\t', quoting : true, encoding : Encoding.UTF8, outputHeader : true, dateTimeFormat : "s", nullEscape : "NULL");
ELSE 
    OUTPUT @final_result
    TO @OUTPUT_FILE
    USING Outputters.Text(delimiter : '\t', quoting : true, encoding : Encoding.UTF8, outputHeader : true, dateTimeFormat : "s", nullEscape : "NULL");
END;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-31 10:30:19

used的IF语句目前仅在编译时使用.所以你可以做这样的事

代码语言:javascript
复制
IF FILE.EXIST() THEN

但是,如果要根据记录的数量输出不同的文件,则必须在SDK/CLI级别编写它:

第一个作业写入临时文件输出(可能是包含行数的状态文件)。然后检查(例如,在Powershell中)该文件是否为空(或您希望使用的任何条件),如果没有,则复制结果,否则将创建空输出文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46588825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档