我有一个U-SQL作业,它从2 .tsv和2 .csv文件中提取数据,选择一些功能并执行一些简单的转换,然后再输出到ADL中的csv / tsv文件。
但是,当我尝试在SELECT语句中添加进一步的转换时,由于特别是一个SELECT语句,运行(10+分钟对1分钟)似乎需要相当长的时间。
我认为这是由于'YearMonth'列的计算,我基本上使用连接来将日期列添加到我需要的格式中。
以下是快速完成的工作:
@StgCrime =
SELECT CrimeID,
[Month],
ReportedBy,
FallsWithin,
Longitude,
Latitude,
Location,
LSOACode,
LSOAName,
CrimeType,
LastOutcome,
Context
FROM @ExtCrime;
OUTPUT @StgCrime
TO "CrimeOutput/Crimes.csv"
USING Outputters.Csv(outputHeader:true);
这项工作需要更长的时间:
@StgCrime =
SELECT CrimeID,
String.Concat([Month].Substring(0, 4),[Month].Substring(5, 2)) AS YearMonth,
ReportedBy AS ForceName,
Longitude,
Latitude,
Location,
LSOACode,
CrimeType,
LastOutcome
FROM @ExtCrime;
OUTPUT @StgCrime
TO @OCrime
USING Outputters.Csv(outputHeader:true);
顶点视图的差异:
With additional transformation
有人可以帮我澄清一下吗?当然,一次改造不应该导致工作时间的这种增加吗?
正在查询的数据文件由1,066个csv文件组成,总共约2.5GB。
答案 0 :(得分:0)
没有看到所有脚本和生成的作业图以及指定的AU的数量,有点难以估计为什么一个作业的运行速度比另一个慢得多。
你说"数据文件"由1066个CSV文件组成,所有这些文件看起来都很小,共有2.5GB。我希望你可能在提取阶段获得1066个提取顶点。那个简单的工作也一样吗?
我们在预览中有一个新功能,它可以将最多200个文件(或首先是1GB)整理到一个顶点,以最大限度地缩短顶点启动时间。
您可以通过添加以下声明来尝试您的工作:
SET @@FeaturePreviews = "InputFileGrouping:on";