この記事では、U-SQL ジョブでデータを処理するユーザー定義演算子を開発する方法について説明します。
U-SQL でユーザー定義演算子を定義して使用する
U-SQL ジョブを作成して送信するには
Visual Studio メニューの [ ファイル] > [新しい > プロジェクト] > U-SQL プロジェクトを選択します。
[ OK] を選択します。 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);
Data Lake Analytics アカウント、データベース、スキーマを指定します。
ソリューション エクスプローラーでScript.usql を右クリックし、[スクリプトのビルド] を選択します。
ソリューション エクスプローラーでScript.usql を右クリックし、[スクリプトの送信] を選択します。
Azure サブスクリプションに接続していない場合は、Azure アカウントの資格情報を入力するように求められます。
[ 送信] を選択します。 申請が完了すると、[結果] ウィンドウに送信結果とジョブ リンクが表示されます。
[ 更新 ] ボタンを選択して、最新のジョブの状態を確認し、画面を更新します。
出力を表示するには
サーバー エクスプローラーで、Azure を展開し、Data Lake Analytics を展開し、Data Lake Analytics アカウントを展開し、[ストレージ アカウント] を展開して、既定のストレージを右クリックして、[エクスプローラー] を選択します。
[サンプル] を展開し、[出力] を展開し、[ Drivers.csv] をダブルクリックします。