Разработка определяемых пользователем операторов U-SQLU (UDO)
В этой статье описано, как разрабатывать определяемые пользователем операторы для обработки данных в задании U-SQL.
Определение и использование определяемых пользователем операторов в U-SQL
Создание и отправка задания U-SQL
В меню Visual Studio выберите Файл > Создать > проект > U-SQL.
Щелкните ОК. Visual Studio создаст решение с помощью файла Script.usql.
В обозревателе решений разверните узел Script.usql и дважды щелкните файл Script.usql.cs.
Вставьте в файл приведенный ниже код.
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(); } } }
Откройте файл Script.usql и вставьте следующий сценарий 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);
Укажите учетную запись аналитики озера данных, базу данных и схему.
В Обозреватель решений щелкните правой кнопкой мыши Script.usql и выберите Команду Создать скрипт.
В Обозреватель решений щелкните правой кнопкой мыши Script.usql и выберите Отправить скрипт.
Если вы еще не подключились к подписке Azure, вам будет предложено ввести учетные данные учетной записи Azure.
Нажмите кнопку Submit (Отправить). Итоги отправки и ссылка на задание появятся в окне результатов, когда операция отправки будет завершена.
Нажмите кнопку Обновить , чтобы просмотреть состояние последнего задания и обновить экран.
Просмотр выходных данных
В Обозреватель сервера разверните Azure, Data Lake Analytics, свою учетную запись Data Lake Analytics, учетные записи хранения, щелкните правой кнопкой мыши хранилище по умолчанию и выберите Обозреватель.
Разверните узлы «Примеры» и «Выходные данные», а затем дважды щелкните Drivers.csv.
Дальнейшие действия
- Extending U-SQL Expressions with User-Code (Расширение выражений U-SQL с помощью пользовательского кода)
- Использование инструментов озера данных для Visual Studio для разработки приложений U-SQL