【发布时间】:2017-11-07 07:12:44
【问题描述】:
环境
- Azure 数据工厂/U-SQL
场景
我有每天运行的 ADF 管道。并按以下格式创建文件夹和文件。基本上创建了日期明智的文件夹和文件。
"/Samples/Data/TestDB/{filedate:yyyy}.{filedate:MM}.{filedate:dd}/TestDetail.{filedate:yyyy}.{filedate:MM}.{文件日期:dd}.csv";
在 U-SQL 中,我想处理最近 7 天的文件。我通过使用虚拟列来选择最近 7 天的文件来创建 U-SQL 脚本。
我在本地运行这些更改。
代码
@userLoginData =
EXTRACT filedate DateTime,
UserLoginAuditDetailId Guid,
UserId string
FROM @userLoginDetailPath
USING Extractors.Csv();
@extractedLoginData =
SELECT
UserLoginAuditDetailId,
UserId
FROM @userLoginData
WHERE filedate.Date.ToString("d") == @sliceEndTime.AddDays(-7).Date.ToString("d");
问题
我能够成功运行脚本,但是当 Job compile then job graph 显示时,它正在寻找超过 7 天的文件。请在下面找到图片。基本上它不应该在寻找文件 2017.04.20。对吧?
【问题讨论】:
-
我想知道您的 WHERE 子句中的函数调用是否复杂到将谓词推回提取器......有点像一个不再可搜索的字段。尝试将虚拟字段的数据类型更改为字符串并进行简单比较?
-
它仍在挑选所有文件