Entwickeln von benutzerdefinierten Operatoren von U-SQL (UDOs)
In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Operatoren entwickeln, um Daten in einem U-SQL-Auftrag zu verarbeiten.
Definieren und Verwenden eines benutzerdefinierten Operators in U-SQL
So erstellen und übermitteln Sie einen U-SQL-Auftrag
Wählen Sie im Visual Studio-Menü Datei > Neues > Projekt > U-SQL-Projekt aus.
Klicken Sie auf OK. Visual Studio erstellt eine Projektmappe mit der Datei „Script.usql“.
Erweitern Sie im Projektmappen-Explorer die Datei „Script.usql“, und doppelklicken Sie dann auf Script.usql.cs.
Fügen Sie den folgenden Code in die Datei ein:
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(); } } }
Öffnen Sie die Datei Script.usql, und fügen Sie das folgende U-SQL-Skript ein:
@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);
Geben Sie das Data Lake Analytics-Konto, die -Datenbank und das -Schema an.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf Script.usql, und wählen Sie dann Skript erstellen aus.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf Script.usql, und wählen Sie dann Skript übermitteln aus.
Wenn Sie keine Verbindung mit Ihrem Azure-Abonnement hergestellt haben, werden Sie aufgefordert, Ihre Anmeldeinformationen für Ihr Azure-Konto einzugeben.
Klicken Sie auf Submit (Senden). Nach Abschluss der Übermittlung werden Ergebnisse und ein Auftragslink im Fenster „Ergebnisse“ angezeigt.
Wählen Sie die Schaltfläche Aktualisieren aus, um den neuesten Auftrag status anzuzeigen und den Bildschirm zu aktualisieren.
So zeigen Sie die Ausgabe an
Erweitern Sie unter Server Explorerazure, erweitern Sie Data Lake Analytics, erweitern Sie Ihr Data Lake Analytics-Konto, erweitern Sie Speicherkonten, klicken Sie mit der rechten Maustaste auf Standardspeicher, und wählen Sie dann Explorer aus.
Erweitern Sie „Beispielcode“ und „Ausgaben“, und doppelklicken Sie dann auf Drivers.csv.