开发 U-SQL 用户定义的运算符 (UDO)
本文介绍如何开发用户定义的运算符以处理 U-SQL 作业中的数据。
在 U-SQL 中定义和使用用户定义的运算符
创建和提交 U-SQL 作业
在 Visual Studio 菜单中,选择“ 文件 > 新建 > 项目 > U-SQL 项目”。
选择“确定” 。 Visual Studio 将创建包含 Script.usql 文件的解决方案。
在“解决方案资源管理器”中,展开 Script.usql,并单击 “Script.usql.cs”。
将以下代码粘贴到文件中:
using Microsoft.Analytics.Interfaces; using System.Collections.Generic; namespace USQL_UDO { public class CountryName : IProcessor { private static IDictionary<string, string> CountryTranslation = new Dictionary<string, string> { { "Deutschland", "Germany" }, { "Suisse", "Switzerland" }, { "UK", "United Kingdom" }, { "USA", "United States of America" }, { "中国", "PR China" } }; public override IRow Process(IRow input, IUpdatableRow output) { string UserID = input.Get<string>("UserID"); string Name = input.Get<string>("Name"); string Address = input.Get<string>("Address"); string City = input.Get<string>("City"); string State = input.Get<string>("State"); string PostalCode = input.Get<string>("PostalCode"); string Country = input.Get<string>("Country"); string Phone = input.Get<string>("Phone"); if (CountryTranslation.Keys.Contains(Country)) { Country = CountryTranslation[Country]; } output.Set<string>(0, UserID); output.Set<string>(1, Name); output.Set<string>(2, Address); output.Set<string>(3, City); output.Set<string>(4, State); output.Set<string>(5, PostalCode); output.Set<string>(6, Country); output.Set<string>(7, Phone); return output.AsReadOnly(); } } }
打开 Script.usql,并粘贴以下 U-SQL 脚本:
@drivers = EXTRACT UserID string, Name string, Address string, City string, State string, PostalCode string, Country string, Phone string FROM "/Samples/Data/AmbulanceData/Drivers.txt" USING Extractors.Tsv(Encoding.Unicode); @drivers_CountryName = PROCESS @drivers PRODUCE UserID string, Name string, Address string, City string, State string, PostalCode string, Country string, Phone string USING new USQL_UDO.CountryName(); OUTPUT @drivers_CountryName TO "/Samples/Outputs/Drivers.csv" USING Outputters.Csv(Encoding.Unicode);
指定 Data Lake Analytics 帐户、数据库和架构。
在解决方案资源管理器中,右键单击“Script.usql”,然后选择“生成脚本”。
从解决方案资源管理器,右键单击“Script.usql”,然后选择“提交脚本”。
如果尚未连接到 Azure 订阅,系统会提示输入 Azure 帐户凭据。
选择“提交”。 完成提交后,“结果”窗口中会出现提交结果和作业链接。
选择“ 刷新 ”按钮以查看最新的作业状态并刷新屏幕。
查看输出
在“服务器资源管理器”中,依次展开“Azure”、“Data Lake Analytics”、“Data Lake Analytics帐户”和“存储帐户”,右键单击“默认存储”,然后选择“资源管理器”。
展开示例、展开输出,并双击 “Drivers.csv”。