U-SQL如何获取当前正在处理的文件名以添加到我的提取输出中?

时间:2016-12-06 15:25:06

标签: u-sql

我需要添加有关正在处理的行的元数据。我需要将文件名添加为列。我查看了Git仓库中的救护车演示,但无法弄清楚如何实现这一点。

1 个答案:

答案 0 :(得分:6)

您使用称为“文件集”和“虚拟列”的U-SQL功能。在我的简单示例中,我的输入目录中有两个文件,我使用文件集并引用EXTRACT语句中的虚拟列,例如

// Filesets, file set with virtual column
@q =
    EXTRACT rowId int,
            filename string,
            extension string
    FROM "/input/filesets example/{filename}.{extension}"
    USING Extractors.Tsv();


@output =
    SELECT filename,
           extension,
           COUNT( * ) AS records
    FROM @q
    GROUP BY filename,
             extension;


OUTPUT @output TO "/output/output.csv"
USING Outputters.Csv();

我的结果:

U-SQL Results

在此处阅读有关这两项功能的更多信息:

https://msdn.microsoft.com/en-us/library/azure/mt621320.aspx