U-SQL Kullanıcı tanımlı işleçler (UDOs) geliştirme
Bu makalede, bir U-SQL işinde verileri işlemek için Kullanıcı tanımlı işleçlerin nasıl geliştirileceği açıklanır.
U-SQL içinde Kullanıcı tanımlı bir işleç tanımlama ve kullanma
Bir U-SQL işi oluşturmak ve göndermek için
Visual Studio 'da yeni > project > U-SQL projesi > dosya seçin.
Tamam'a tıklayın. Visual Studio, Script.usql dosyasıyla bir çözüm oluşturur.
Çözüm Gezgini' den Script. usql ' i genişletin ve ardından Script. usql. cs' ye ç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 şu 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 Gezgini'nden, Script.usql öğesine sağ tıklayın ve ardından Betik Oluştur'a tıklayın.
Çözüm Gezgini'nden, Script.usql öğesine sağ tıklayın ve ardından Betiği Gönder'e tıklayın.
Azure aboneliğinize bağlanmadıysanız Azure hesabı kimlik bilgilerinizi girmeniz istenir.
Gönder' e tıklayın. Gönderim tamamlandığında, sonuç penceresinde gönderim sonuçları ve iş bağlantısı bulunur.
En son iş durumunu görmek ve ekranı yenilemek için Yenile düğmesine tıklayın.
Çıktıyı görmek için
Sunucu Gezgini, Azure' ı genişletin, Data Lake Analytics' i genişletin, Data Lake Analytics hesabınızı genişletin, depolama hesapları' nı genişletin, varsayılan depolama alanına sağ tıklayın ve ardından Gezgin' e tıklayın.
Örnekler ' i genişletin, çıktılar ' i genişletin ve ardından Drivers.csv' ye çift tıklayın.