Desenvolver operadores definidos pelo utilizador (UDOs) U-SQL
Este artigo descreve como desenvolver operadores definidos pelo utilizador para processar dados numa tarefa U-SQL.
Definir e utilizar um operador definido pelo utilizador no U-SQL
Para criar e submeter uma tarefa U-SQL
No menu do Visual Studio, selecione Ficheiro > Novo > Projeto > Projeto Projeto U-SQL Project.
Selecione OK. O Visual Studio cria uma solução com um ficheiro Script.usql.
Em Explorador de Soluções, expanda Script.usql e, em seguida, faça duplo clique Script.usql.cs.
Cole o código seguinte no ficheiro:
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 e cole o seguinte script 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 a conta do Data Lake Analytics, a Base de Dados e o Esquema.
Em Explorador de Soluções, clique com o botão direito do rato em Script.usql e, em seguida, selecione Criar Script.
Em Explorador de Soluções, clique com o botão direito do rato em Script.usql e, em seguida, selecione Submeter Script.
Se ainda não se tiver ligado à sua subscrição do Azure, ser-lhe-á pedido que introduza as credenciais da conta do Azure.
Selecione Submeter. Os resultados da submissão e a ligação da tarefa estão disponíveis na janela Resultados quando a submissão estiver concluída.
Selecione o botão Atualizar para ver o estado da tarefa mais recente e atualizar o ecrã.
Para ver a saída
No Explorador de Servidores, expanda Azure, expanda Data Lake Analytics, expanda a sua conta de Data Lake Analytics, expanda Contas de Armazenamento, clique com o botão direito do rato no Armazenamento Predefinido e, em seguida, selecione Explorador.
Expanda Exemplos, expanda Saídas e, em seguida, faça duplo clique Drivers.csv.