U-SQL ユーザー定義演算子 (UDO) の開発Develop U-SQL user-defined operators (UDOs)

このアーティクルでは、U-SQL ジョブ内のデータを処理するユーザー定義演算子を開発する方法について説明します。This article describes how to develop user-defined operators to process data in a U-SQL job.

U-SQL でのユーザー定義演算子の定義と使用Define and use a user-defined operator in U-SQL

U-SQL ジョブを作成して送信するにはTo create and submit a U-SQL job

  1. Visual Studio で、 [ファイル]、[新規作成]、[プロジェクト]、[ U-SQL プロジェクト] の順に選択します。From the Visual Studio select File > New > Project > U-SQL Project.

  2. Click OK.Click OK. Visual Studio によって、Script.usql ファイルを使用するソリューションが作成されます。Visual Studio creates a solution with a Script.usql file.

  3. ソリューション エクスプローラーで、Script.usql を展開してから Script.usql.cs をダブルクリックします。From Solution Explorer, expand Script.usql, and then double-click Script.usql.cs.

  4. 以下のコードをファイルに貼り付けます。Paste the following code into the file:

     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 スクリプトを貼り付けます。Open Script.usql, and paste the following U-SQL script:

     @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 アカウント、データベース、スキーマを指定します。Specify the Data Lake Analytics account, Database, and Schema.

  7. ソリューション エクスプローラーScript.usql を右クリックし、 [スクリプトのビルド] をクリックします。From Solution Explorer, right-click Script.usql, and then click Build Script.

  8. ソリューション エクスプローラーScript.usql を右クリックし、 [スクリプトの送信] をクリックします。From Solution Explorer, right-click Script.usql, and then click Submit Script.

  9. Azure サブスクリプションに接続していない場合は、Azure アカウント資格情報の入力を求められます。If you haven't connected to your Azure subscription, you will be prompted to enter your Azure account credentials.

  10. [送信] をクリックします。Click Submit. 送信が完了すると、[結果] ウィンドウに送信結果とジョブのリンクが示されます。Submission results and job link are available in the Results window when the submission is completed.

  11. 最新のジョブの状態を表示して、画面を更新するには、 [更新] ボタンをクリックします。Click the Refresh button to see the latest job status and refresh the screen.

出力を表示するにはTo see the output

  1. サーバー エクスプローラーで、 [Azure][Data Lake Analytics] 、Data Lake Analytics アカウント、 [ストレージ アカウント] の順に展開し、既定のストレージを右クリックしてから [エクスプローラー] をクリックします。From Server Explorer, expand Azure, expand Data Lake Analytics, expand your Data Lake Analytics account, expand Storage Accounts, right-click the Default Storage, and then click Explorer.
  2. [サンプル]、[出力] の順にクリックしてから、 Drivers.csvをダブルクリックします。Expand Samples, expand Outputs, and then double-click Drivers.csv.

関連項目See also