现在,我们在Azure Data Lake Store中拥有数据,现在正在使用带有U-SQL的Azure Data Analytic Job处理其中的数据。现在我们需要根据存在的列值将数据推送到不同的输出文件夹。
假设我们处理完数据后输出如下
ID |名称|公司
1 Midhun测试
2 Midhun2 test2
所以我想先将第一个记录到名为" test" \ result.tsv的输出文件夹,将第二个记录到输出文件夹中,然后输出到#34; test2" \ result.tsv
我可以在U-SQL中执行此操作吗?我没有找到任何关于U-SQL的好的参考文档。如果您知道,请与他人分享。
答案 0 :(得分:2)
目前的参考文档是http://aka.ms/usql_reference的测试版。我计划在2月份进行更新,增加更多缺失部分并改进导航。稍后的修订将添加更多示例代码。
您基本上希望支持此功能:https://feedback.azure.com/forums/327234-data-lake/suggestions/10550388-support-dynamic-output-file-names-in-adla。如果您还没有这样做,请添加您的投票。
我们实际上正在考虑在“现在”和我们发布GA版本服务之间提供此功能。
在功能可用之前,您必须在一个脚本中基本获取文件的名称,以生成第二个脚本,以创建将数据输出到不同文件的脚本。
E.g。您只能从上面获取公司列,然后生成一个脚本(使用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