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