Eseguire lo sviluppo U-SQL con Python, R e C# per Azure Data Lake Analytics in Visual Studio Code

Informazioni su come usare Visual Studio Code (VS Code) per scrivere codice Python, R e C# con U-SQL e inviare processi al servizio Azure Data Lake. Per altre informazioni su Azure Data Lake Tools per VS Code, vedere Usare il codice Strumenti Azure Data Lake per Visual Studio.

Prima di scrivere codice personalizzato code-behind, è necessario aprire una cartella o un'area di lavoro in VS Code.

Prerequisiti per Python e R

Registrare gli assembly di estensioni di Python e R per l'account ADL.

  1. Aprire l'account nel portale.

    • Selezionare la scheda di informazioni generali.
    • Selezionare Script di esempio.
  2. Selezionare Altro.

  3. Selezionare Installa estensioni U-SQL.

  4. Dopo l'installazione delle estensioni U-SQL, viene visualizzato un messaggio di conferma.

    Screenshot che illustrano la selezione di script di esempio in Panoramica, selezionando Altro e Installa estensioni U-SQL.

    Nota

    Per un'esperienza migliore con il servizio di linguaggio Python e R, installare le estensioni Python e R di VSCode.

Sviluppare un file Python

  1. Selezionare il nuovo file nell'area di lavoro.

  2. Scrivere il codice in U-SQL. Di seguito è disponibile un esempio di codice.

    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. Fare clic con il pulsante destro del mouse su un file script e scegliere ADL: Generate Python Code Behind File (ADL: Genera file code-behind Python).

  4. Verrà generato il file xxx.usql.py nella cartella di lavoro. Scrivere il codice nel file Python. Di seguito è disponibile un esempio di codice.

    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. Fare clic con il pulsante destro del mouse sul file USQL per selezionare Compila script o Invia processo per l'esecuzione del processo.

Sviluppare un file R

  1. Selezionare il nuovo file nell'area di lavoro.

  2. Scrivere il codice nel file U-SQL. Di seguito è disponibile un esempio di codice.

    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. Fare clic con il pulsante destro del mouse sul file USQL e scegliere ADL: Generate R Code Behind File (ADL: Genera file code-behind R).

  4. Verrà generato il file xxx.usql.r nella cartella di lavoro. Scrivere il codice nel file R. Di seguito è disponibile un esempio di codice.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Fare clic con il pulsante destro del mouse sul file USQL per selezionare Compila script o Invia processo per l'esecuzione del processo.

Sviluppare un file C#

Un file code-behind è un file C# associato a uno script U-SQL. È possibile definire uno script dedicato a UDO, UDA, UDT e UDFF nel file code-behind. L'opzione UDO, UDA, UDT e UDF può essere usata direttamente nello script senza dover prima registrare l'assembly. Il file code-behind viene inserito nella stessa cartella del suo file di script U-SQL associato. Se lo script viene denominato xxx.usql, code-behind assume il nome xxx.usql.cs. Se si elimina manualmente il file code-behind, viene disabilitata la funzionalità code-behind per lo script U-SQL associato. Per altre informazioni sulla scrittura del codice cliente per lo script U-SQL, vedere Scrivere e usare il codice personalizzato in U-SQL: funzioni definite dall'utente.

  1. Selezionare il nuovo file nell'area di lavoro.

  2. Scrivere il codice nel file U-SQL. Di seguito è disponibile un esempio di codice.

    @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. Fare clic con il pulsante destro del mouse sul file USQL e scegliere ADL: Generate CS Code Behind File (ADL: Genera file code-behind CS).

  4. Verrà generato il file xxx.usql.cs nella cartella di lavoro. Scrivere il codice nel file CS. Di seguito è disponibile un esempio di codice.

    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. Fare clic con il pulsante destro del mouse sul file USQL per selezionare Compila script o Invia processo per l'esecuzione del processo.

Passaggi successivi