如何使用U-SQL脚本添加两个csv文件的元素?

时间:2017-08-26 03:13:08

标签: c# azure-data-lake u-sql

我尝试在Azure Data Lake Analytics(ADLA)中使用U-SQL脚本来处理上传到Azure Data Lake Store(ADLS)的两个csv文件。 CSV文件中有一行和三列。我不清楚如何使用U-SQL脚本添加每个文件的三个元素,并将结果放入新的CSV文件中。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你需要从CSV文件输出3行,其中每个文件有1行和3列。这样做的方法是在U-SQL中使用UNION操作,如here所述:

    @result = 
        SELECT * FROM @f1
        UNION ALL BY NAME ON (*)
        SELECT * FROM @f2
        UNION ALL BY NAME ON (*)
        SELECT * FROM @f3;  

OUTPUT @result 
TO "pathtoyourfile.csv" 
USING Outputters.Csv();

答案 1 :(得分:1)

如果您的文件位于同一文件夹中,那么您不需要:execute "Gedit|Gread! show " . matchstr(fugitive#buffer().rev(), '\x\{40}') . ":". fugitive#buffer().path() 任何内容。只需使用filesets and virtual columns来引用它们。这是一个简单的例子:

UNION

在此示例中,我在文件类型@input = EXTRACT colA int, colB string, colC DateTime?, filename string FROM "/input/{filename}.log" USING Extractors.Csv(); // Do some processing if you need @output = SELECT DISTINCT * FROM @input; // Output results OUTPUT @output TO "/output/output.csv" USING Outputters.Csv(); 的{​​{1}}目录中有两个具有相同结构的文件。当我运行脚本时,两个文件在一个结果集中实际上是input