azure-data-lake - Azure 数据湖循环

标签 azure-data-lake u-sql

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/

相关文章:

azure - 将增量数据加载到 Azure 数据湖和 Azure 数据仓库的最佳实践

azure - 如何使用数据工厂截断 Dynamics 365 实体(并复制到 Azure 数据湖)?

azure-data-lake - 当静默开关为真时使用 U-SQL 文件集模式提取数据

sql - Azure/U-SQL - 将查询输出到屏幕

azure - 为什么 Azure 流分析将数据输出到单独的文件?

azure - 如何定义日期范围,然后在 USQL 中查询复杂的文件集?

azure - Google 的 BigQuery 与 Azure 数据湖 U-SQL

azure-data-lake - 如何在 Azure Data Lake 中安排 U-SQL 查询?

unit-testing - U-SQL 过程的单元测试

azure - U-SQL:如何根据内容跳过文件分析