如何在U-SQL提取语句中指定日期范围

问题描述 投票:1回答:1

我的输入文件位于月份目录中,带有命名模式_.csv

我可以创建摘录以获取所有文件@InputFile_Daily +“ {*}。json”

但是现在我需要能够创建特定日期范围的文件集,例如,今天->今天3

是否可以指定这种范围,无论是正则表达式还是U-SQL提取中的其他范围?或如我在其他地方看到的,提取all数据,然后将结果过滤到我感兴趣的范围内。这不理想,因为成本是一个因素]

azure azure-data-lake u-sql
1个回答
0
投票

在U-SQL中,按照您所说的(@InputFile_Daily + "{*}.json")提取所有文件,然后在第一个选择中应用日期过滤器,它内部仅提取所需的数据。

示例:

DECLARE @input string = @"/temp/stackoverflow.json";

// Read input file
@inputData =
    EXTRACT Account string,
            Alias string,
            Company string,
            date DateTime,
            Json string
    FROM @input
    USING Extractors.Text(delimiter : '\n', quoting : false);

@extractedFields =
           SELECT Account,
                  Alias,
                  Company,
                  date,
                  Json 
           FROM @inputData
           WHERE  @referenceDate == DateTime.MinValue OR (date >= @dateFrom AND date <= @dateTo);

[如果您有1百万个文件,并且您的过滤器适用于最新文件,例如5个文件,则它将仅提取5个文件。您可以在u-sql作业图上确认这一点,然后提取出多少文件。

© www.soinside.com 2019 - 2024. All rights reserved.