[英]Azure Data Lake - Conditions
我想使用 if-else 語句來決定我必須在哪個位置導出數據。 我的情況是:
解決方案可能是 IF..ELSE 配置。 問題是,如果我計算記錄數,我得到了行集變量,我無法將它與標量變量進行比較。
@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;
U-SQL 的 IF 語句目前只在編譯時使用。 所以你可以做類似的事情
IF FILE.EXIST() THEN
但是,如果您想根據記錄數輸出不同的文件,則必須在 SDK/CLI 級別編寫它:
第一個作業寫入一個臨時文件輸出(可能還有一個包含行數的狀態文件)。 然后您檢查(例如在 Powershell 中)文件是否為空(或您想要使用的任何標准),如果不是,則復制結果,否則創建空輸出文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.