Entwickeln von U-SQL mit Python, R und C# für Azure Data Lake Analytics in Visual Studio Code

Erfahren Sie, wie Sie Visual Studio Code (VS Code) verwenden, um Python-, R- und C#-Codebehind mit U-SQL zu schreiben und Aufträge an den Azure Data Lake-Dienst zu übermitteln. Weitere Informationen zu Azure Data Lake Tools für VS Code finden Sie unter Verwenden des Azure Data Lake Tools für Visual Studio Code.

Bevor Sie codebenutzerdefinierten Code schreiben, müssen Sie einen Ordner oder Arbeitsbereich in VS Code öffnen.

Voraussetzungen für Python und R

Registrieren Sie Assemblys für Python- und R-Erweiterungen für Ihr ADL-Konto.

  1. Öffnen Sie Ihr Konto im Portal.

    • Wählen Sie Übersicht.
    • Wählen Sie Beispielskript aus.
  2. Wählen Sie Mehr aus.

  3. Wählen Sie U-SQL-Erweiterungen installieren.

  4. Nachdem die U-SQL-Erweiterungen installiert wurden, wird eine Bestätigungsmeldung angezeigt.

    Screenshots: Auswählen von Beispielskripts in der Übersicht, Auswählen von Mehr und Installieren von U-SQL-Erweiterungen

    Hinweis

    Installieren Sie zur optimalen Nutzung des Sprachdiensts für Python und R die Python- und R-Erweiterungen für VSCode.

Entwickeln einer Python-Datei

  1. Wählen Sie in Ihrem Arbeitsbereich die Option Neue Datei aus.

  2. Schreiben Sie Ihren Code in U-SQL. Im Anschluss sehen Sie ein Codebeispiel.

    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. Klicken Sie mit der rechten Maustaste auf eine Skriptdatei, und klicken Sie dann auf ADL: Generate Python Code Behind File (ADL: Python-CodeBehind-Datei generieren).

  4. Die Datei xxx.usql.py wird in Ihrem Arbeitsordner erstellt. Schreiben Sie Ihren Code in die Python-Datei. Im Anschluss sehen Sie ein Codebeispiel.

    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. Klicken Sie mit der rechten Maustaste in die USQL-Datei , und wählen Sie Skript kompilieren oder Auftrag an ausgeführten Auftrag übermitteln aus.

Entwickeln einer R-Datei

  1. Wählen Sie in Ihrem Arbeitsbereich die Option Neue Datei aus.

  2. Schreiben Sie Ihren Code in die U-SQL-Datei. Im Anschluss sehen Sie ein Codebeispiel.

    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. Klicken Sie mit der rechten Maustaste in die USQL-Datei, und klicken Sie dann auf ADL: Generate R Code Behind File (ADL: R-CodeBehind-Datei generieren).

  4. Die Datei xxx.usql.r wird in Ihrem Arbeitsordner erstellt. Schreiben Sie Ihren Code in die R-Datei. Im Anschluss sehen Sie ein Codebeispiel.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Klicken Sie mit der rechten Maustaste in die USQL-Datei , und wählen Sie Skript kompilieren oder Auftrag an ausgeführten Auftrag übermitteln aus.

Entwickeln einer C#-Datei

Eine CodeBehind-Datei ist eine C#-Datei, die einem U-SQL-Skript zugeordnet ist. Sie können ein Skript speziell für UDO, UDA, UDT und UDF in der CodeBehind-Datei definieren. UDO, UDA, UDT und UDF können direkt im Skript verwendet werden, ohne die Assembly zuvor zu registrieren. Die CodeBehind-Datei wird im gleichen Ordner wie die U-SQL-Skriptdatei für das Peering gespeichert. Wenn das Skript den Namen „xxx.usql“ erhält, heißt die CodeBehind-Datei „xxx.usql.cs“. Durch manuelles Löschen der CodeBehind-Datei wird das CodeBehind-Feature für das zugehörige U-SQL-Skript deaktiviert. Weitere Informationen zum Schreiben von Kundencode für ein U-SQL-Skript finden Sie unter Writing and Using Custom Code in U-SQL: User-Defined Functions (Schreiben und Verwenden von benutzerdefiniertem Code in U-SQL: benutzerdefinierte Funktionen).

  1. Wählen Sie in Ihrem Arbeitsbereich die Option Neue Datei aus.

  2. Schreiben Sie Ihren Code in die U-SQL-Datei. Im Anschluss sehen Sie ein Codebeispiel.

    @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. Klicken Sie mit der rechten Maustaste in die USQL-Datei, und klicken Sie dann auf ADL: Generate CS Code Behind File (ADL: CS-CodeBehind-Datei generieren).

  4. Die Datei xxx.usql.cs wird in Ihrem Arbeitsordner erstellt. Schreiben Sie Ihren Code in die CS-Datei. Im Anschluss sehen Sie ein Codebeispiel.

    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. Klicken Sie mit der rechten Maustaste in die USQL-Datei , und wählen Sie Skript kompilieren oder Auftrag an ausgeführten Auftrag übermitteln aus.

Nächste Schritte