Vývoj uživatelem definovaných operátorů U-SQL (Udo)
Tento článek popisuje, jak vyvíjet uživatelsky definované operátory pro zpracování dat v úloze U-SQL.
Definování a použití uživatelem definovaného operátoru v U-SQL
Vytvoření a odeslání úlohy U-SQL
V aplikaci Visual Studio vyberte soubor > nový projekt > > U-SQL.
Klikněte na OK. Visual Studio vytvoří řešení se souborem Script.usql.
V Průzkumník řešení rozbalte Script. usql a dvakrát klikněte na script. usql. cs.
Do souboru vložte následující kód:
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(); } } }Otevřete skript. usql a vložte následující skript 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);Zadejte účet Data Lake Analytics, Databázi a Schéma.
V Průzkumníku řešení klikněte pravým tlačítkem na položku Script.usql a pak klikněte na možnost Sestavit skript.
V Průzkumníku řešení klikněte pravým tlačítkem na položku Script.usql a pak klikněte na položku Odeslat skript.
Pokud jste se nepřipojili k předplatnému Azure, budete vyzváni k zadání přihlašovacích údajů k účtu Azure.
Klikněte na Odeslat. Výsledky odeslání a odkaz na úlohu jsou k dispozici v okně výsledků po dokončení odeslání.
Kliknutím na tlačítko aktualizovat zobrazíte nejnovější stav úlohy a aktualizujete obrazovku.
Zobrazení výstupu
V Průzkumník serveru rozbalte položku Azure, rozbalte položku Data Lake Analytics, rozbalte účet služby Data Lake Analytics, rozbalte položku účty úložiště, klikněte pravým tlačítkem na výchozí úložiště a pak klikněte na tlačítko Průzkumník.
Rozbalte položku ukázky, rozbalte položku výstupy a dvakrát klikněte na položku Drivers.csv.