Door de gebruiker gedefinieerde U-SQL-operators (UDF's) ontwikkelen
In dit artikel wordt beschreven hoe u door de gebruiker gedefinieerde operators ontwikkelt voor het verwerken van gegevens in een U-SQL-taak.
Een door de gebruiker gedefinieerde operator definiëren en gebruiken in U-SQL
Een U-SQL-taak maken en verzenden
Selecteer bestand > Nieuw > project > U-SQL-project in het menu Visual Studio.
Selecteer OK. Visual Studio maakt een oplossing met het bestand Script.usql.
Vouw in Solution Explorer Script.usql uit en dubbelklik op Script.usql.cs.
Plak de volgende code in het bestand:
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(); } } }
Open Script.usql en plak het volgende U-SQL-script:
@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);
Geef het Data Lake Analytics-account, de database en het schema op.
Klik in Solution Explorer met de rechtermuisknop op Script.usql en selecteer Vervolgens Build Script.
Klik in Solution Explorer met de rechtermuisknop op Script.usql en selecteer Script verzenden.
Als u nog geen verbinding hebt gemaakt met uw Azure-abonnement, wordt u gevraagd uw Azure-accountreferenties in te voeren.
Selecteer Indienen. Inzendingsresultaten en taakkoppeling zijn beschikbaar in het venster Resultaten wanneer de inzending is voltooid.
Selecteer de knop Vernieuwen om de meest recente taakstatus weer te geven en het scherm te vernieuwen.
De uitvoer bekijken
Vouw in Server ExplorerAzure uit, vouw Data Lake Analytics uit, vouw uw Data Lake Analytics-account uit, vouw Opslagaccounts uit, klik met de rechtermuisknop op standaardopslag en selecteer vervolgens Explorer.
Vouw Voorbeelden uit, vouw Uitvoer uit en dubbelklik vervolgens op Drivers.csv.