Sviluppare operatori U-SQL definiti dall'utente (UDO)
Questo articolo descrive come sviluppare operatori definiti dall'utente per elaborare i dati in un processo U-SQL.
Definire e usare un operatore definito dall'utente in U-SQL
Per creare e inviare un processo di U-SQL
Dal menu di Visual Studio selezionare File > Nuovo > progetto > U-SQL Project.
Selezionare OK. Visual Studio crea una soluzione con un file Script.usql.
In Esplora soluzioni espandere Script.usql e fare doppio clic su Script.usql.cs.
Incollare il codice seguente nel file:
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(); } } }
Aprire Script.usql e incollare lo script U-SQL seguente:
@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);
Specificare l'account di Analisi Data Lake, il database e lo schema.
Da Esplora soluzioni fare clic con il pulsante destro del mouse su Script.usql e quindi scegliere Compila script.
Da Esplora soluzioni fare clic con il pulsante destro del mouse su Script.usql e quindi scegliere Invia script.
Se non si è connessi alla sottoscrizione di Azure, verrà richiesto di immettere le credenziali dell'account Azure.
Selezionare Submit (Invia). Al termine della procedura di invio, nella finestra dei risultati saranno disponibili i risultati dell'operazione di invio e il collegamento al processo.
Selezionare il pulsante Aggiorna per visualizzare lo stato del processo più recente e aggiornare la schermata.
Per visualizzare l'output
In Esplora server espandere Azure, espandere Data Lake Analytics, espandere l'account di Data Lake Analytics, espandere Account di archiviazione, fare clic con il pulsante destro del mouse su Archiviazione predefinita e quindi scegliere Esplora risorse.
Espandere esempi, espandere gli output e quindi fare doppio clic su Drivers.csv.
Passaggi successivi
- Extending U-SQL Expressions with User-Code (Estensione delle espressioni U-SQL con il codice utente)
- Utilizzare gli strumenti Data Lake per Visual Studio per lo sviluppo di applicazioni U-SQL