U-SQL kullanıcı tanımlı işleçler (UPO'lar) geliştirme
Bu makalede, U-SQL işinde verileri işlemek için kullanıcı tanımlı işleçlerin nasıl geliştirilecekleri açıklanır.
U-SQL'de kullanıcı tanımlı işleç tanımlama ve kullanma
U-SQL işi oluşturmak ve göndermek için
Visual Studio menüsünde Dosya Yeni > Proje > U-SQL Projesi'ni seçin>.
Tamam’ı seçin. Visual Studio, Script.usql dosyasıyla bir çözüm oluşturur.
Çözüm Gezgini script.usql dosyasını genişletin ve Script.usql.cs çift tıklayın.
Aşağıdaki kodu dosyaya yapıştırın:
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 dosyasını açın ve aşağıdaki U-SQL betiğini yapıştırın:
@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 hesabını, Veritabanı'nı ve Şema'yı belirtin.
Çözüm GezginiBetik.usql dosyasına sağ tıklayın ve Ardından Betik Oluştur'a tıklayın.
Çözüm Gezginiscript.usql dosyasına sağ tıklayıp Betiği Gönder'i seçin.
Azure aboneliğinize bağlanmadıysanız Azure hesabı kimlik bilgilerinizi girmeniz istenir.
Gönder’i seçin. Gönderim tamamlandığında Sonuçlar penceresinde gönderim sonuçları ve iş bağlantısı bulunur.
En son iş durumunu görmek ve ekranı yenilemek için Yenile düğmesini seçin.
Çıkışı görmek için
Sunucu Gezgini'ndenAzure'ı genişletin, Data Lake Analytics genişletin, Data Lake Analytics hesabınızı genişletin, Depolama Hesapları'nı genişletin, Varsayılan Depolama'ya sağ tıklayın ve gezgin'i seçin.
Örnekler'i genişletin, Çıkışlar'ı genişletin ve ardındanDrivers.csvöğesine çift tıklayın.