Desarrollo de operadores U-SQL definidos por el usuario (UDO)
En este artículo se describe cómo desarrollar operadores definidos por el usuario para procesar datos en un trabajo de U-SQL.
Definición y uso de un operador definido por el usuario en U-SQL
Para crear y enviar un trabajo de U-SQL
En el menú de Visual Studio, seleccione Archivo > nuevo > proyecto > U-SQL Project.
Seleccione Aceptar. Visual Studio crea una solución con un archivo Script.usql.
En el Explorador de soluciones, expanda Script.usql y haga doble clic en Script.usql.cs.
Pegue el código siguiente en el archivo:
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(); } } }
Abra Script.usql y pegue el siguiente script de 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);
Especifique la cuenta de Análisis de Data Lake, la base de datos y el esquema.
En Explorador de soluciones, haga clic con el botón derecho en Script.usql y, después, seleccione Compilar script.
En Explorador de soluciones, haga clic con el botón derecho en Script.usql y seleccione Enviar script.
Si no se ha conectado a su suscripción de Azure, se le pedirá que escriba las credenciales de la cuenta de Azure.
Seleccione Submit (Enviar). Los resultados del envío y el vínculo del trabajo están disponibles en la ventana de resultados cuando se completa el envío.
Seleccione el botón Actualizar para ver el estado del trabajo más reciente y actualizar la pantalla.
Para ver la salida
En el Explorador de servidores, expanda Azure, expanda Data Lake Analytics, expanda la cuenta de Data Lake Analytics, expanda Cuentas de almacenamiento, haga clic con el botón derecho en el almacenamiento predeterminado y, a continuación, seleccione Explorador.
Expanda Ejemplos, expanda Salidas y, finalmente, haga doble clic en Drivers.csv.