Freigeben über


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#-Code zusammen mit U-SQL zu schreiben und Aufgaben an den Azure Data Lake-Dienst einzureichen. Weitere Informationen zu Azure Data Lake Tools für VS Code finden Sie unter Verwenden der Azure Data Lake Tools für Visual Studio Code.

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

Voraussetzungen für Python und R

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

  1. Öffnen Sie Ihr Konto im Portal.

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

  3. Wählen Sie Installieren Sie U-SQL-Erweiterungenaus.

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

    Screenshots mit der Auswahl von Beispielskripts in der Übersicht, wählen Sie

    Hinweis

    Für optimale Erfahrungen im Python- und R-Sprachdienst installieren Sie VSCode Python und R-Erweiterung.

Entwickeln einer Python-Datei

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

  2. Schreiben Sie Ihren Code in U-SQL. Es folgt 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 wählen Sie dann ADL aus: Python Code Behind Filegenerieren.

  4. Die xxx.usql.py Datei wird in Ihrem Arbeitsordner generiert. Schreiben Sie Ihren Code in der Python-Datei. Es folgt 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 USQL Datei, sie können Kompilierungsskript oder Sendeauftrag zum Ausführen des Auftrags auswählen.

Entwickeln einer R-Datei

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

  2. Schreiben Sie Ihren Code in der U-SQL-Datei. Es folgt 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 USQL Datei, und wählen Sie dann ADL: R Code Behind File generieren.

  4. Die datei xxx.usql.r wird in Ihrem Arbeitsordner generiert. Schreiben Sie Ihren Code in der R-Datei. Es folgt ein Codebeispiel.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Klicken Sie mit der rechten Maustaste auf die USQL--Datei, Sie können Skript kompilieren oder Auftrag senden zum Ausführen des Jobs auswählen.

C#-Datei entwickeln

Eine CodeBehind-Datei ist eine C#-Datei, die einem einzelnen U-SQL-Skript zugeordnet ist. Sie können ein Skript für UDO, UDA, UDT und UDF in der CodeBehind-Datei definieren. Die UDO, UDA, UDT und UDF können direkt im Skript verwendet werden, ohne zuerst die Assembly zu registrieren. Die CodeBehind-Datei wird im selben Ordner wie die Peering-U-SQL-Skriptdatei abgelegt. Wenn das Skript xxx.usql heißt, lautet der Code-Behind xxx.usql.cs. Wenn Sie die CodeBehind-Datei manuell löschen, ist das CodeBehind-Feature für das zugeordnete U-SQL-Skript deaktiviert. Weitere Informationen zum Schreiben von Kundencode für U-SQL-Skripts finden Sie unter Schreiben und Verwenden von benutzerdefiniertem Code in U-SQL: User-Defined Funktionen.

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

  2. Schreiben Sie Ihren Code in der U-SQL-Datei. Es folgt 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 USQL--Datei, und wählen Sie dann ADL aus: CS Code Behind Filegenerieren.

  4. Die xxx.usql.cs Datei wird in Ihrem Arbeitsordner generiert. Schreiben Sie Ihren Code in der CS-Datei. Es folgt 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 auf die Datei USQL, und Sie können Skript kompilieren oder Auftrag einreichen zum Ausführen des Auftrags auswählen.

Nächste Schritte