Mengembangkan U-SQL dengan Python, R, dan C Sharp untuk Azure Data Lake Analytics di Visual Studio Code

Pelajari cara menggunakan Visual Studio Code (VS Code) untuk menulis kode Python, R dan C# di belakang dengan U-SQL dan mengirimkan pekerjaan ke layanan Azure Data Lake. Untuk informasi selengkapnya tentang Azure Data Lake Tools for VS Code, lihat Menggunakan Azure Data Lake Tools untuk Visual Studio Code.

Sebelum menulis kode kustom di belakang kode, Anda perlu membuka folder atau ruang kerja di Visual Studio Code.

Prasyarat untuk Python dan R

Daftarkan Python dan, rakitan ekstensi R untuk akun ADL Anda.

  1. Buka akun Anda di portal.

    • Pilih Gambaran umum.
    • Pilih Contoh Skrip.
  2. Pilih Lainnya.

  3. Pilih Instal Ekstensi U-SQL.

  4. Pesan konfirmasi ditampilkan setelah ekstensi U-SQL diinstal.

    Cuplikan layar memperlihatkan memilih Contoh Skrip di Gambaran Umum, memilih Lainnya dan Menginstal Ekstensi U-SQL.

    Catatan

    Untuk pengalaman terbaik tentang layanan bahasa Python dan R, silakan instal ekstensi VSCode Python dan R.

Mengembangkan file Python

  1. Pilih File Baru di ruang kerja Anda.

  2. Tulis kode Anda di U-SQL. Berikut ini adalah sampel kode.

    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. Klik kanan file skrip, lalu pilih ADL: Hasilkan File Code-Behind Python.

  4. Berkas xxx.usql.py dibuat di dalam folder kerja Anda. Tulis kode Anda dalam file Python. Berikut ini adalah sampel kode.

    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. Klik kanan dalam file USQL , Anda dapat memilih Kompilasi Skrip atau Kirim Pekerjaan untuk menjalankan pekerjaan.

Mengembangkan file R

  1. Pilih File Baru di ruang kerja Anda.

  2. Tulis kode Anda di U-SQL. Berikut ini adalah sampel kode.

    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. Klik kanan dalam file USQL, lalu pilih ADL: Hasilkan File Code-Behind R.

  4. Berkas xxx.usql.r dibuat di dalam folder kerja Anda. Tulis kode Anda di U-SQL. Berikut ini adalah sampel kode.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Klik kanan dalam file USQL , Anda dapat memilih Kompilasi Skrip atau Kirim Pekerjaan untuk menjalankan pekerjaan.

Mengembangkan file C#

File code-behind adalah file C# yang terkait dengan satu skrip kueri SQL. Anda dapat menentukan skrip yang didedikasikan untuk UDO, UDA, UDT, dan UDF dalam file code-behind. UDO, UDA, UDT, dan UDF dapat digunakan langsung dalam skrip tanpa mendaftarkan assembly terlebih dahulu. File code-behind dimasukkan ke dalam folder yang sama dengan file skrip U-SQL peering-nya. Jika skrip diberi nama xxx.usql, kode-di belakang dinamai xxx.usql.cs. Jika Anda menghapus file code-behind secara manual, fitur code-behind dinonaktifkan untuk skrip U-SQL terkait. Untuk informasi selengkapnya tentang menulis kode pelanggan untuk skrip U-SQL, lihat Menulis dan Menggunakan Kode Kustom di U-SQL: Fungsi yang Ditentukan Pengguna.

  1. Pilih File Baru di ruang kerja Anda.

  2. Tulis kode Anda di U-SQL. Berikut ini adalah sampel kode.

    @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. Klik kanan dalam file USQL, lalu pilih ADL: hasilkan File Code-Behind CS.

  4. Berkas xxx.usql.cs dibuat di dalam folder kerja Anda. Tulis kode Anda di file CS. Berikut ini adalah sampel kode.

    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. Klik kanan dalam file USQL , Anda dapat memilih Kompilasi Skrip atau Kirim Pekerjaan untuk menjalankan pekerjaan.

Langkah berikutnya