1

在数据湖中,我有模式为 yyyyMM_data.csv 的文件名。现在我想阅读前 3 天的数据。我正在使用下面的代码 -

DECLARE @ReportDate DateTime= DateTime.Parse("05/08/2017");
DECLARE @FeatureSummaryInput string=@"/FolderPath/{InputFileDate:yyyy}{InputFileDate:MM}_data.csv";

@FeaturedUsed =
    EXTRACT Id string,InputFileDate DateTime
    FROM @FeatureSummaryInput
    USING Extractors.Csv(silent : true, skipFirstNRows : 1);

@FeaturedUsed=
    SELECT *
           FROM @FeaturedUsed
    WHERE InputFileDate BETWEEN @ReportDate.AddDays(-3) AND @ReportDate;

如果我运行上面的代码,它会以空输入运行。如果我遗漏了什么,请告诉我。为什么它没有读取正确的文件?

似乎我们需要在文件名模式中使用“day”才能工作。

4

1 回答 1

0

可能我遗漏了一些东西,但是,当你投射InputFileDate到它时,DateTime它默认为每月的第一天,因为没有指定日期。对于您的测试ReportDate集 to 05/08/2017,您的WHERE子句基本上评估为Between 2017-08-02 And 2017-08-05,这永远不会是真的。

您希望 day 元素在您的文件结构中出现在yyyyMM哪里?

于 2017-09-19T21:32:09.807 回答