U-SQL:如何处理架构更改?

时间:2018-10-18 15:33:28

标签: sql visual-studio azure azure-data-factory u-sql

我的原始脚本是这样的:

@input = EXTRACT A string, B string, C string, 
         year string, month string, day string, filename string
    FROM @folder + "/{year}/{month}/{day}/{filename}.csv"
    USING Extractors.Csv(skipFirstNRows : 1);

@input = SELECT A, B, C FROM @input;

OUTPUT @input
    TO @parent + "/testtest.csv"
    USING Outputters.Csv(outputHeader : true);

这可以正常工作,但是有时源文件的架构(列)可能会更改。这些列可能变为A,B,C,D或A,B,E。

我知道Visual Studio可以生成EXTRACT脚本。有没有办法使U-SQL(或Visual Studio)处理此问题并动态自动生成提取脚本?

1 个答案:

答案 0 :(得分:1)

Csv提取器不允许架构更改。 如果您更改架构,则需要更改您的u-sql代码!

解决方案是创建一个自定义提取器来完成您的工作,或者您可以检查允许使用灵活列模式的灵活提取器。

https://blogs.msdn.microsoft.com/mrys/2016/08/15/how-to-deal-with-files-containing-rows-with-different-column-counts-in-u-sql-introducing-a-flexible-schema-extractor/