【问题标题】:Azure data factory (ADFv2) - how to process multiple input files from different folder in a USQL jobAzure 数据工厂 (ADFv2) - 如何在 USQL 作业中处理来自不同文件夹的多个输入文件
【发布时间】:2019-04-04 16:32:37
【问题描述】:

我们需要使用 Azure 数据工厂和 USQL 处理来自不同文件夹的多个文件。

这是我们的文件夹结构

年 --> 月 --> 日

我们为每个日期都有一个文件夹,比如 1、2、3...31。要求是从特定文件夹中读取文件并将其传递给 USQL 进行分析处理。我们需要处理多个日期的数据。数据工厂中有什么方法可以从多个文件夹中读取数据。

示例:我需要读取特定月份的日期、1、7 和 10 的数据。我不想阅读当月的所有文件

如果您遇到上述情况的解决方案,请告诉我们。

【问题讨论】:

    标签: azure u-sql azure-data-factory-2


    【解决方案1】:

    是的,有。您应该使用虚拟列。例子: 您的文件只有 column1 和 column2。

    path1=/yourFolder/2018/11/1/file.csv

    path2=/yourFolder/2018/10/25/file.csv

    DECLARE date1 = new DateTime(2018,11,1);
    DECLARE date2 = new DateTime(2018,10,25);
    @inputData = EXTRACT column1 string,
    column2 string, 
    FileDate DateTime //this is virtual column
    FROM "/yourFolder/{FileDate:yyyy}/{FileDate:MM}/{FileDate:dd}/file.csv"
    USING Extractors.Text(delimiter:';',skipFirstNRows:1);
    @res = SELECT * FROM @inputData WHERE FileDate == date1 AND FileDate ==date2;
    

    这样您就可以使用虚拟列管理您的文件夹结构。 如果您想从某个日期范围等获取文件,您当然可以使用 BETWEEN。 高温

    附:您可以将参数从 ADF 发送到 USQL 存储过程,我只是举例说明了如何使用特定文件。

    【讨论】:

      【解决方案2】:

      以下代码有效。如上所述。

      声明外部@startDate string = "2018-08-01"; // 值将从 ADF 传递 声明外部@endDate string = "2018-08-31"; // 值将从 ADF 传递

      声明@report_start_date DateTime = DateTime.ParseExact(@startDate,"yyyy-MM-dd",CultureInfo.InvariantCulture); DECLARE @report_end_date DateTime = DateTime.ParseExact(@endDate,"yyyy-MM-dd",CultureInfo.InvariantCulture);

      DECLARE @INPUT_FILE=@valueFromADF+"/{date:yyyy}/{date:M}/{date:d}/{filename}.txt";

      @dataAsString = EXTRACT value string,date DateTime FROM @INPUT_FILE USING Extractors.Text(delimiter:'\n'); @dataAsStrings = SELECT * FROM @dataAsString WHERE date BETWEEN @report_start_date AND @report_end_date;

      【讨论】:

        猜你喜欢
        • 2021-05-26
        • 1970-01-01
        • 2019-09-12
        • 1970-01-01
        • 2023-02-06
        • 2020-07-29
        • 1970-01-01
        • 2021-03-10
        • 2021-01-01
        相关资源
        最近更新 更多