Felhasználói U-SQL-operátorok (U-SQL-ek) fejlesztése
Ez a cikk bemutatja, hogyan fejleszthet felhasználó által definiált operátorokat az adatok U-SQL-feladatban való feldolgozásához.
Felhasználó által definiált operátor definiálása és használata az U-SQL-ben
U-SQL-feladat létrehozása és elküldése
A Visual Studio menüjében válassza az Új > projekt > fájlja > U-SQL Project lehetőséget.
Válassza az OK lehetőséget. A Visual Studio egy Script.usql-fájllal rendelkező megoldást hoz létre.
A Megoldáskezelő bontsa ki a Script.usql elemet, majd kattintson duplán a Script.usql.cs.
A fájlba illessze be az alábbi kódot:
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(); } } }
Nyissa meg a Script.usql fájlt, és illessze be a következő U-SQL-szkriptet:
@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);
Adja meg a Data Lake Analytics-fiókot, -adatbázist és -sémát.
A Megoldáskezelő kattintson a jobb gombbal a Script.usql parancsra, majd válassza a Szkript létrehozása parancsot.
A Megoldáskezelő kattintson a jobb gombbal a Script.usql elemre, majd válassza a Szkript küldése parancsot.
Ha még nem csatlakozott az Azure-előfizetéséhez, a rendszer kérni fogja, hogy adja meg az Azure-fiók hitelesítő adatait.
Válassza a Küldés lehetőséget. A beküldési eredmények és a feladathivatkozás a beküldés befejezésekor az Eredmények ablakban érhető el.
Kattintson a Frissítés gombra a legújabb feladat állapotának megtekintéséhez és a képernyő frissítéséhez.
A kimenet megtekintése
A Server Explorerben bontsa ki az Azure-t, bontsa ki a Data Lake Analytics, bontsa ki a Data Lake Analytics fiókját, bontsa ki a Tárfiókok elemet, kattintson a jobb gombbal az Alapértelmezett tár elemre, majd válassza az Explorer lehetőséget.
Bontsa ki a Minták elemet, bontsa ki a Kimenetek elemet, majd kattintson duplán aDrivers.csv.