開發 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] 。