Vývoj U-SQL pomocí Pythonu, R a C# pro Azure Data Lake Analytics v Visual Studio Code

Naučte se používat Visual Studio Code (VSCode) k zápisu kódu Pythonu, R a C# za použití U-SQL a odesílání úloh do služby Azure Data Lake. Další informace o Azure Data Lakech nástrojích pro VSCode najdete v tématu použití nástroje Azure Data Lake pro Visual Studio kódu.

Před psaním vlastního kódu na pozadí musíte v VSCode otevřít složku nebo pracovní prostor.

Předpoklady pro Python a R

Zaregistrujte sestavení rozšíření Python a R pro váš účet ADL.

  1. Otevřete účet na portálu.

    • Vyberte Přehled.
    • Klikněte na ukázkový skript.
  2. Klikněte na Další.

  3. Vyberte instalovat rozšíření U-SQL.

  4. Po instalaci rozšíření U-SQL se zobrazí potvrzovací zpráva.

    Nastavení prostředí pro Python a R

    Poznámka

    Pro lepší zkušenosti se službou Python a jazyka R prosím nainstalujte VSCode Python a R Extension.

Vývoj souboru Pythonu

  1. Klikněte na nový soubor v pracovním prostoru.

  2. Napište svůj kód do U-SQL. Následuje ukázka kódu.

    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. Klikněte pravým tlačítkem na soubor skriptu a pak vyberte ADL: vygenerujte soubor kódu Pythonu na pozadí.

  4. Soubor xxx.usql.py se vygeneruje v pracovní složce. Napište svůj kód do souboru Python. Následuje ukázka kódu.

    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. Klikněte pravým tlačítkem na soubor USQL , můžete kliknout na kompilovat skript nebo Odeslat úlohu do spuštěné úlohy.

Vývoj souboru R

  1. Klikněte na nový soubor v pracovním prostoru.

  2. Napište svůj kód do souboru U-SQL. Následuje ukázka kódu.

    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. Klikněte pravým tlačítkem na soubor USQL a pak vyberte ADL: vygenerujte soubor kódu R na pozadí.

  4. Soubor xxx. usql. r je vygenerován v pracovní složce. Napište svůj kód do souboru R. Následuje ukázka kódu.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Klikněte pravým tlačítkem na soubor USQL , můžete kliknout na kompilovat skript nebo Odeslat úlohu do spuštěné úlohy.

Vývoj souboru C#

Soubor kódu na pozadí je soubor C# přidružený k jednomu skriptu U-SQL. V souboru kódu na pozadí můžete definovat skript vyhrazený pro UDO, UDA, UDT a UDF. UDO, UDA, UDT a UDF lze použít přímo ve skriptu bez registrace sestavení jako první. Soubor kódu na pozadí se umístí do stejné složky jako partnerský soubor skriptu U-SQL. Pokud má skript název xxx. usql, kód na pozadí se jmenuje jako xxx. usql. cs. Pokud soubor kódu na pozadí odstraníte ručně, funkce kódu na pozadí je zakázána pro svůj přidružený skript U-SQL. Další informace o psaní kódu zákazníka pro skript U-SQL najdete v tématu zápis a použití vlastního kódu v u-SQL: User-Defined Functions.

  1. Klikněte na nový soubor v pracovním prostoru.

  2. Napište svůj kód do souboru U-SQL. Následuje ukázka kódu.

    @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. Klikněte pravým tlačítkem na soubor USQL a pak vyberte ADL: vygenerujte soubor cs za kódem.

  4. V pracovní složce se vygeneruje soubor xxx. usql. cs . Napište svůj kód do souboru CS. Následuje ukázka kódu.

    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. Klikněte pravým tlačítkem na soubor USQL , můžete kliknout na kompilovat skript nebo Odeslat úlohu do spuštěné úlohy.

Další kroky