Aracılığıyla paylaş


Visual Studio Code'da Azure Data Lake Analytics için Python, R ve C# ile U-SQL geliştirme

Visual Studio Code'u (VS Code) kullanarak U-SQL ile arka planda Python, R ve C# kodu yazmayı ve Azure Data Lake hizmetine iş göndermeyi öğrenin. VS Code için Azure Data Lake Araçları hakkında daha fazla bilgi için bkz. Visual Studio Code için Azure Data Lake Araçları'nı kullanma.

Özel kodun arkasına kod yazmadan önce VS Code'da bir klasör veya çalışma alanı açmanız gerekir.

Python ve R önkoşulları

ADL hesabınız için Python ve R uzantıları derlemelerini kaydedin.

  1. Hesabınızı portalda açın.

    • Genel bakış'ı seçin.
    • Örnek Betik'i seçin.
  2. Diğer'i seçin.

  3. U-SQL Uzantılarını Yükle'yi seçin.

  4. U-SQL uzantıları yüklendikten sonra onay iletisi görüntülenir.

    Genel Bakış'ta Örnek Betikler'i seçmeyi, Diğer'i ve U-SQL Uzantılarını Yükle'yi seçmeyi gösteren ekran görüntüleri.

    Uyarı

    Python ve R dil hizmetiyle ilgili en iyi deneyimler için lütfen VSCode Python ve R uzantısını yükleyin.

Python dosyası geliştirme

  1. Çalışma alanınızdaki Yeni Dosya'ya tıklayın.

  2. Kodunuzu U-SQL'de yazın. Aşağıda bir kod örneği verilmiştir.

    REFERENCE ASSEMBLY [ExtPython];
    @t  = 
        SELECT * FROM 
        (VALUES
            ("D1","T1","A1","@foo Hello World @bar"),
            ("D2","T2","A2","@baz Hello World @beer")
        ) AS 
            D( date, time, author, tweet );
    
    @m  =
        REDUCE @t ON date
        PRODUCE date string, mentions string
        USING new Extension.Python.Reducer("pythonSample.usql.py", pyVersion : "3.5.1");
    
    OUTPUT @m
        TO "/tweetmentions.csv"
        USING Outputters.Csv();
    
  3. Bir betik dosyasına sağ tıklayın ve ADL: Dosyanın Arkasında Python Kodu Oluştur'a tıklayın.

  4. xxx.usql.py dosyası çalışma klasörünüzde oluşturulur. Kodunuzu Python dosyasına yazın. Aşağıda bir kod örneği verilmiştir.

    def get_mentions(tweet):
        return ';'.join( ( w[1:] for w in tweet.split() if w[0]=='@' ) )
    
    def usqlml_main(df):
        del df['time']
        del df['author']
        df['mentions'] = df.tweet.apply(get_mentions)
        del df['tweet']
        return df
    
  5. USQL dosyasına sağ tıklayın, Betik Derle veya İşi Gönder seçeneklerinden birini seçerek iş çalıştırabilirsiniz.

R dosyası geliştirme

  1. Çalışma alanınızdaki Yeni Dosya'ya tıklayın.

  2. Kodunuzu U-SQL dosyasına yazın. Aşağıda bir kod örneği verilmiştir.

    DEPLOY RESOURCE @"/usqlext/samples/R/my_model_LM_Iris.rda";
    DECLARE @IrisData string = @"/usqlext/samples/R/iris.csv";
    DECLARE @OutputFilePredictions string = @"/my/R/Output/LMPredictionsIris.txt";
    DECLARE @PartitionCount int = 10;
    
    @InputData =
        EXTRACT SepalLength double,
                SepalWidth double,
                PetalLength double,
                PetalWidth double,
                Species string
        FROM @IrisData
        USING Extractors.Csv();
    
    @ExtendedData =
        SELECT Extension.R.RandomNumberGenerator.GetRandomNumber(@PartitionCount) AS Par,
            SepalLength,
            SepalWidth,
            PetalLength,
            PetalWidth
        FROM @InputData;
    
    // Predict Species
    
    @RScriptOutput =
        REDUCE @ExtendedData
        ON Par
        PRODUCE Par,
                fit double,
                lwr double,
                upr double
        READONLY Par
        USING new Extension.R.Reducer(scriptFile : "RClusterRun.usql.R", rReturnType : "dataframe", stringsAsFactors : false);
    OUTPUT @RScriptOutput
    TO @OutputFilePredictions
    USING Outputters.Tsv();
    
  3. USQL dosyasına sağ tıklayın ve ardından ADL: Dosyanın Arkasında R Kodu Oluştur'a tıklayın.

  4. xxx.usql.r dosyası çalışma klasörünüzde oluşturulur. Kodunuzu R dosyasına yazın. Aşağıda bir kod örneği verilmiştir.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. USQL dosyasına sağ tıklayın ve Betik Derle veya işi çalıştırmak için Gönder'i seçin.

C# dosyası geliştirme

Arka planda kod dosyası, tek bir U-SQL betiğiyle ilişkilendirilmiş bir C# dosyasıdır. Kod-arkası dosyasında, UDO, UDA, UDT ve UDF'ye adanmış bir script tanımlayabilirsiniz. UDO, UDA, UDT ve UDF, önce derlemeyi kaydetmeye gerek kalmadan doğrudan betikte kullanılabilir. Arka plan kodu dosyası, eş U-SQL betik dosyasıyla aynı klasöre konur. Betiğin adı xxx.usql ise, arka planda kod xxx.usql.cs olarak adlandırılır. Arka planda kod dosyasını el ile silerseniz, arka planda kod özelliği ilişkili U-SQL betiği için devre dışı bırakılır. U-SQL betiği için müşteri kodu yazma hakkında daha fazla bilgi için bkz. U-SQL'de Özel Kod Yazma ve Kullanma: User-Defined İşlevleri.

  1. Çalışma alanınızdaki Yeni Dosya'ya tıklayın.

  2. Kodunuzu U-SQL dosyasına yazın. Aşağıda bir kod örneği verilmiştir.

    @a = 
        EXTRACT 
            Iid int,
        Starts DateTime,
        Region string,
        Query string,
        DwellTime int,
        Results string,
        ClickedUrls string 
        FROM @"/Samples/Data/SearchLog.tsv" 
        USING Extractors.Tsv();
    
    @d =
        SELECT DISTINCT Region 
        FROM @a;
    
    @d1 = 
        PROCESS @d
        PRODUCE 
            Region string,
        Mkt string
        USING new USQLApplication_codebehind.MyProcessor();
    
    OUTPUT @d1 
        TO @"/output/SearchLogtest.txt" 
        USING Outputters.Tsv();
    
  3. USQL dosyasına sağ tıklayın ve ardından ADL: Dosyanın Arkasında CS Kodu Oluştur'a tıklayın.

  4. xxx.usql.cs dosyası çalışma klasörünüzde oluşturulur. Kodunuzu CS dosyasına yazın. Aşağıda bir kod örneği verilmiştir.

    namespace USQLApplication_codebehind
    {
        [SqlUserDefinedProcessor]
    
        public class MyProcessor : IProcessor
        {
            public override IRow Process(IRow input, IUpdatableRow output)
            {
                output.Set(0, input.Get<string>(0));
                output.Set(1, input.Get<string>(0));
                return output.AsReadOnly();
            } 
        }
    }
    
  5. USQL dosyasına sağ tıklayın, Betik Derle'yi veya İşi çalışan işe gönder'i seçebilirsiniz.

Sonraki Adımlar