Freigeben über


Entwickeln von benutzerdefinierten U-SQL-Operatoren (UDOs)

In diesem Artikel wird beschrieben, 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

  1. Wählen Sie im Visual Studio-Menü Datei > Neues > Project > U-SQL-Projektaus.

  2. Wählen Sie OK aus. Visual Studio erstellt eine Lösungsdatei mit einer Script.usql-Datei.

  3. Erweitern Sie im Lösungs-ExplorerScript.usql, und doppelklicken Sie dann auf Script.usql.cs.

  4. 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();
            }
        }
    }
    
  5. Öffnen Sie 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);
    
  6. Geben Sie das Data Lake Analytics-Konto, die Datenbank und das Schema an.

  7. Klicken Sie im Solution Explorermit der rechten Maustaste auf Script.usql, und wählen Sie dann Build Scriptaus.

  8. Klicken Sie im Solution Explorermit der rechten Maustaste auf Script.usql, und wählen Sie dann Skript übermittelnaus.

  9. Wenn Sie keine Verbindung mit Ihrem Azure-Abonnement hergestellt haben, werden Sie aufgefordert, Ihre Azure-Kontoanmeldeinformationen einzugeben.

  10. Wählen Sie Übermitteln aus. Übermittlungsergebnisse und Auftragslink sind im Fenster "Ergebnisse" verfügbar, wenn die Übermittlung abgeschlossen ist.

  11. Wählen Sie die Schaltfläche Aktualisieren aus, um den aktuellen Auftragsstatus anzuzeigen und den Bildschirm zu aktualisieren.

Um die Ausgabe zu sehen

  1. Erweitern Sie aus Server Explorer, erweitern Sie Azure, erweitern Sie Data Lake Analytics, erweitern Sie Ihr Data Lake Analytics-Konto, erweitern Sie Speicherkonten, klicken Sie mit der rechten Maustaste auf den Standardspeicher, und wählen Sie dann Exploreraus.

  2. Erweitern Sie Beispiele, erweitern Sie Ausgaben, und doppelklicken Sie dann auf Drivers.csv.

Nächste Schritte