我的输入文件位于月份目录中,带有命名模式_.csv
我可以创建摘录以获取所有文件@InputFile_Daily +“ {*}。json”
但是现在我需要能够创建特定日期范围的文件集,例如,今天->今天3
是否可以指定这种范围,无论是正则表达式还是U-SQL提取中的其他范围?或如我在其他地方看到的,提取all数据,然后将结果过滤到我感兴趣的范围内。这不理想,因为成本是一个因素]
在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作业图上确认这一点,然后提取出多少文件。