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 语句过滤提取的数据,并使用虚拟列根据文件路径/名称 ( example ) 进行过滤。
要输出到多个文件,如果文件数量合理,您可以为每个输出编写唯一的行集和 WHERE 子句。
正如您所说,您也可以使用 Powershell 或 U-SQL ( example ) 编写脚本。
多个文件的动态输出目前处于有限的私有(private)预览中。如果您对此功能感兴趣,请将您的场景发送到 usql at microsoft dot com,因为根据您的描述,它可能适用于您的场景。
希望这对您有所帮助,如果您对实现这些解决方案有更多疑问,请告诉我。
关于azure-data-lake - Azure 数据湖循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49261914/