Bagikan melalui


Mengembangkan U-SQL dengan Python, R, dan C# 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 for Visual Studio Code.

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

Prasyarat untuk Python dan R

Daftarkan rakitan ekstensi Python dan R untuk akun ADL Anda.

  1. Buka akun Anda di portal.

    • Pilih Ikhtisar.
    • Pilih Contoh Skrip.
  2. Pilih Lainnya.

  3. Pilih Instal Ekstensi U-SQL.

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

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

    Nota

    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 Kode Python di Belakang File.

  4. File xxx.usql.py dihasilkan di 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 dalam file 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 Kode R di Belakang File.

  4. File xxx.usql.r dihasilkan di folder kerja Anda. Tulis kode Anda dalam file R. 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 berhubungan dengan satu skrip U-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 sebagai 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: User-Defined Functions.

  1. Pilih File Baru di ruang kerja Anda.

  2. Tulis kode Anda dalam file 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 Kode CS di Belakang File.

  4. File xxx.usql.cs dihasilkan di folder kerja Anda. Tulis kode Anda dalam 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