本文說明如何開發使用者定義的運算符來處理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 帳戶、展開 儲存器帳戶,以滑鼠右鍵單擊 [預設記憶體],然後選取 [Explorer]。
展開 [範例],展開 [輸出],然後雙擊 Drivers.csv。