如何使用 U-SQL 合并文件 N 天



我想合并 7 天文件中的数据并使用 U-SQL 对它们执行一些操作。 ADLS 上的文件夹结构 -/sample/data/YYYY/MM/DD.1.csv 例如,今天是 03/01/2018 (DD/MM/YYYY(,那么我想选择从 27/12/2017 到 02/01/2018 的数据。

在 U-SQL 中如何实现这一点?

您应该在文件路径中使用虚拟列。
例如:

DECLARE @path = "/sample/data/{FileDate:yyyy}/{FileDate:MM}/{FileDate:dd}.1.csv
DECLARE @startDate = new DateTime(2017,12,27);
DECLARE @endDate = new DateTime(2018,01,02);
@data = EXTRACT 
column1 string,
column2 string,
FileDate DateTime
from @path
USING Extractors.Csv(); //or which extractor you are using

OUTPUT(
SELECT * FROM @data
WHERE FileDate BETWEEN @startDate AND @endDate)
TO "/sample/data/appended.csv
USING Outputters.Text(delimiter : ';', outputHeader : true); //output this in your csv file

此代码应提取日期范围内的所有数据。 附言我不确定我是否写了好的文件名,请检查一下。 希望这对您有所帮助。在这里,您可以找到有关虚拟列的文档。

最新更新