簡體   English   中英

Azure Data Lake Loop

[英]Azure Data Lake Loop

Azure Data Lake Analytics和U-SQL支持使用While或For循環並創建多個輸出嗎? 我希望使用一個USQL執行輸出到多個文件。

這就是我要的:

Foreach @day in @days
    @dataToSave = 
        SELECT    day AS day,
                  company AS Company,      
        FROM @data
        WHERE @day = @day

    @out = @day + ".txt"

    OUTPUT @dataToSave
    TO @out
    USING Outputters.Text();
Next

我知道我可以使用powershell,但我認為這會耗費性能來准備執行。

U-SQL不支持While或For循環。 您可以使用WHERE語句過濾提取的數據,並使用虛擬列根據文件路徑/名稱進行過濾( 示例 )。

要輸出到多個文件,如果每個輸出的文件數量合理,則可以為其創建唯一的rowset和WHERE子句。

正如您所說,您也可以使用Powershell或U-SQL編寫腳本( 示例 )。

動態輸出到多個文件目前處於有限的私人預覽中。 如果您對此功能感興趣,請發送電子郵件至microsoft dot com的usql,因為它可以根據您的描述適用於您的場景。

希望這會有所幫助,如果您對實施任何這些解決方案有更多疑問,請告訴我。

您可以嘗試創建自定義輸出器並忽略輸出文件並在您自己的文件上寫入! public override void Output(IRow行,IUnstructuredWriter輸出)

試試這個,也使用輸出器:

public override void Output(IRow input, IUnstructuredWriter output)
    {
       using (System.IO.StreamWriter streamWriter = new StreamWriter(address + _file, true))
    //Save on file!
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM