Opracowywanie operatorów zdefiniowanych przez użytkownika U-SQL (U-SQL)
W tym artykule opisano sposób tworzenia operatorów zdefiniowanych przez użytkownika w celu przetwarzania danych w zadaniu U-SQL.
Definiowanie i używanie operatora zdefiniowanego przez użytkownika w języku U-SQL
Aby utworzyć i przesłać zadanie U-SQL
W menu programu Visual Studio wybierz pozycję Plik > nowy > projekt > U-SQL Project.
Wybierz przycisk OK. Program Visual Studio tworzy rozwiązanie z plikiem Script.usql.
W Eksplorator rozwiązań rozwiń węzeł Script.usql, a następnie kliknij dwukrotnie Script.usql.cs.
Wklej poniższy kod do pliku:
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(); } } }
Otwórz plik Script.usql i wklej następujący skrypt 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);
Określ konto usługi Data Lake Analytics, bazę danych i schemat.
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję Script.usql, a następnie wybierz pozycję Kompiluj skrypt.
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję Script.usql, a następnie wybierz pozycję Prześlij skrypt.
Jeśli nie nawiązano połączenia z subskrypcją platformy Azure, zostanie wyświetlony monit o wprowadzenie poświadczeń konta platformy Azure.
Wybierz pozycję Prześlij. Wyniki przesyłania i link zadania są dostępne w oknie Wyniki po zakończeniu przesyłania.
Wybierz przycisk Odśwież , aby wyświetlić najnowszy stan zadania i odświeżyć ekran.
Aby wyświetlić dane wyjściowe
W Eksploratorze serwerarozwiń węzełAzure, rozwiń Data Lake Analytics, rozwiń konto Data Lake Analytics, rozwiń węzeł Konta magazynu, kliknij prawym przyciskiem myszy pozycję Magazyn domyślny, a następnie wybierz pozycję Eksplorator.
Rozwiń węzeł Przykłady, rozwiń węzeł Dane wyjściowe, a następnie kliknij dwukrotnie Drivers.csv.