仅提取 U-SQL 中需要的文件
Extract only required files in U-SQL
是否可以只解压3天的文件,而不解压所有的文件。
DROP VIEW IF EXISTS dbo.Read;
CREATE VIEW IF NOT EXISTS dbo.Read AS
EXTRACT
Statements
FROM
"adl://Test/{date:yyyy}/{date:M}/{date:d}/Testfile.csv"
USING Extractors.Csv(silent:true,quoting : true, nullEscape : "/N");
@res =
SELECT * FROM dbo.Read
WHERE date BETWEEN DateTime.Parse("2015/07/01") AND DateTime.Parse("2015/07/03");
OUTPUT @res
TO "adl://test/Testing/loop.csv"
USING Outputters.Csv();
您可以在部分路径甚至部分名称中使用文件集规范中的模式标识符(参见 https://msdn.microsoft.com/en-us/library/azure/mt771650.aspx)。你可以做文件列表,所以如果你在每个目录中只有一个文件,你可以做;
EXTRACT ...
FROM "adl://Test/2015/07/1/Testfile.csv"
, "adl://Test/2015/07/2/Testfile.csv"
USING ...;
如果每个目录中有多个文件,您可以每天单独提取,然后合并结果。类似于:
@a = EXTRACT ....
FROM "adl://Test/2015/07/1/{*}.csv"
USING ...;
@b = EXTRACT ....
FROM "adl://Test/2015/07/2/{*}.csv"
USING ...;
@fullset = SELECT * FROM @a UNION SELECT * FROM @b;
不幸的是,我认为目前没有文件集列表允许您在一个 EXTRACT 语句中执行上述情况。
Partition elimination already ensures for your query that only files matching predicates will actually be read (you can confirm that in the job graph).
另请参阅我之前对
的回答
如果您对绩效仍有疑虑,职位图表还可以帮助您确定它们的来源。
是否可以只解压3天的文件,而不解压所有的文件。
DROP VIEW IF EXISTS dbo.Read;
CREATE VIEW IF NOT EXISTS dbo.Read AS
EXTRACT
Statements
FROM
"adl://Test/{date:yyyy}/{date:M}/{date:d}/Testfile.csv"
USING Extractors.Csv(silent:true,quoting : true, nullEscape : "/N");
@res =
SELECT * FROM dbo.Read
WHERE date BETWEEN DateTime.Parse("2015/07/01") AND DateTime.Parse("2015/07/03");
OUTPUT @res
TO "adl://test/Testing/loop.csv"
USING Outputters.Csv();
您可以在部分路径甚至部分名称中使用文件集规范中的模式标识符(参见 https://msdn.microsoft.com/en-us/library/azure/mt771650.aspx)。你可以做文件列表,所以如果你在每个目录中只有一个文件,你可以做;
EXTRACT ...
FROM "adl://Test/2015/07/1/Testfile.csv"
, "adl://Test/2015/07/2/Testfile.csv"
USING ...;
如果每个目录中有多个文件,您可以每天单独提取,然后合并结果。类似于:
@a = EXTRACT ....
FROM "adl://Test/2015/07/1/{*}.csv"
USING ...;
@b = EXTRACT ....
FROM "adl://Test/2015/07/2/{*}.csv"
USING ...;
@fullset = SELECT * FROM @a UNION SELECT * FROM @b;
不幸的是,我认为目前没有文件集列表允许您在一个 EXTRACT 语句中执行上述情况。
Partition elimination already ensures for your query that only files matching predicates will actually be read (you can confirm that in the job graph).
另请参阅我之前对
如果您对绩效仍有疑虑,职位图表还可以帮助您确定它们的来源。