我想从我的资源库仅提取3天以内(2015/10/01至2015/10/03)的数据。以下逻辑将首先提取Test文件夹内的所有文件,然后在“选择”语句中将其分为3天,因此执行时间太长。 是否有可能只提取文件3天,而不提取所有文件。仅提取U-SQL中的必需文件
DROP VIEW IF EXISTS dbo.Read;
CREATE VIEW IF NOT EXISTS dbo.Read AS
EXTRACT
ControllerID int?,
ParameterID int?,
MeasureDate DateTime,
Value float,
date DateTime
FROM
"adl://eclwpsdatalake.azuredatalakestore.net/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://eclwpsdatalake.azuredatalakestore.net/WPS/TestMusigma/loop.csv"
USING Outputters.Csv();
谢谢你的回答。它正在工作,但如果我使用“之间”,它会提取所有日期(日期不在于开始日期和结束日期之间的谎言),然后过滤400天。 – Bond
嗨邦德。如果您使用BETWEEN并且作业图显示了所有文件(而不是仅适用于谓词的那些文件),请将链接发送至电子邮件作业(Microsoft的usql),以便我们调查? –