다음을 통해 공유


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 계정을 확장한 다음, Storage 계정을 확장하고, 기본 스토리지를 마우스 오른쪽 버튼으로 클릭하고 탐색기를 선택합니다.

  2. 샘플을 확장하고 출력을 확장한 다음 Drivers.csv두 번 클릭합니다.

다음 단계