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

U-SQL How can I get the current filename being processed to add to my extract output?

我需要添加有关正在处理的行的元数据。我需要将文件名添加为一列。我查看了 Git 存储库中的救护车演示,但不知道如何实现它。

您使用了 U-SQL 的一项功能,称为 'file sets' 和 'virtual columns'。在我的简单示例中,我的输入目录中有两个文件,我使用文件集并引用 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();

我的结果:

在此处详细了解这两个功能:

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