0

现在我们在 Azure Data Lake Store 中有数据,现在正在使用带有 U-SQL 的 Azure 数据分析作业处理那里的数据。现在我们有一个需求,我们需要根据存在的列值将数据推送到不同的输出文件夹中。

假设一旦我们处理数据并且我们有如下输出

身份证 | 姓名 | 公司

1 Midhun测试

2 Midhun2 测试2

所以我想将第一个记录移动到名为“test”\result.tsv 的输出文件夹,第二个移动到输出文件夹到“test2”\result.tsv

我能在 U-SQL 中做到这一点吗?我没有找到任何关于 U-SQL 的好的参考文档。有知道的可以分享一下链接吗。

4

1 回答 1

2

当前的参考文档在http://aka.ms/usql_reference是 beta 形式。我计划有时在 2 月进行更新,添加更多缺失的部分并改进导航。以后的修订将添加更多示例代码。

您基本上希望支持此功能:https ://feedback.azure.com/forums/327234-data-lake/suggestions/10550388-support-dynamic-output-file-names-in-adla 。如果您还没有这样做,请添加您的投票。

实际上,我们正在考虑在“现在”和我们发布服务的 GA 版本之间提供这种功能。

在该功能可用之前,您基本上必须在一个脚本中获取文件的名称以生成第二个脚本,以创建将数据输出到不同文件的脚本。

例如,您只能从上面获取 Company 列,然后生成一个脚本(使用 T4 或 Powershell 或您喜欢使用的任何其他工具,包括 U-SQL 本身 :)),通常具有以下格式:

... Your U-SQL processing to get the rowset you want to split, lets call it @data

OUTPUT (SELECT * FROM @data WHERE Company == "<insert value of directory name>") 
TO "/output/<insert value of directory name>/result.tsv"
USING Outputters.Tsv();

... Repeat the above statement for every directory name
于 2016-01-29T02:55:34.257 回答