Поделиться через


Разработка пользовательских операторов U-SQL (UDO)

В этой статье описывается, как разрабатывать определяемые пользователем операторы для обработки данных в задании U-SQL.

Определение и использование определяемого пользователем оператора в U-SQL

Создание и отправка задания U-SQL

  1. В меню Visual Studio выберите Файл > Новый > Проект > Проект U-SQL.

  2. Нажмите ОК. Visual Studio создает решение с помощью файла Script.usql.

  3. В обозревателе решенийразверните script.usql и дважды щелкните Script.usql.cs.

  4. Вставьте следующий код в файл:

    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();
            }
        }
    }
    
  5. Откройте 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);
    
  6. Укажите учетную запись Data Lake Analytics, базу данных и схему.

  7. В Проводнике решений щелкните правой кнопкой мыши Script.usql, а затем выберите Скомпилировать скрипт.

  8. В обозревателе решений щелкните правой кнопкой мыши Script.usql, а затем выберите Отправить скрипт.

  9. Если вы еще не подключились к подписке Azure, вам будет предложено ввести учетные данные учетной записи Azure.

  10. Выберите Отправить. Результаты отправки и ссылка на задание доступны в окне результатов при завершении отправки.

  11. Нажмите кнопку Обновить, чтобы узнать последнее состояние задания и обновить экран.

Просмотр выходных данных

  1. В Обозревателе сервераразверните Azure, разверните Data Lake Analytics, разверните свою учетную запись Data Lake Analytics, разверните Учетные записи хранилища, щелкните правой кнопкой мыши по хранилищу по умолчанию, а затем выберите Обозреватель.

  2. Разверните Примеры, разверните Выходные данные и дважды щелкните Drivers.csv.

Дальнейшие действия