Разработка определяемых пользователем операторов U-SQLU (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. Укажите учетную запись аналитики озера данных, базу данных и схему.

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

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

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

  10. Нажмите кнопку Submit (Отправить). Итоги отправки и ссылка на задание появятся в окне результатов, когда операция отправки будет завершена.

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

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

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

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

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