U-SQL ontwikkelen met python, R en C# voor Azure Data Lake Analytics in Visual Studio code

Meer informatie over het gebruik van Visual Studio code (VSCode) voor het schrijven van python-, R-en C#-code achter met U-SQL en het verzenden van taken naar Azure Data Lake service. Zie de Azure data Lake-Hulpprogram ma's voor Visual Studio gebruikenvoor meer informatie over Azure data Lake-hulpprogram Ma's voor VSCode.

Voordat u code-behind aangepaste code schrijft, moet u een map of een werk ruimte openen in VSCode.

Vereisten voor python en R

Registreer python-en R-extensies-assembly's voor uw ADL-account.

  1. Open uw account in de portal.

    • Selecteer Overzicht.
    • Klik op voorbeeld script.
  2. Klik op Meer.

  3. Selecteer Installeer U-SQL-extensies.

  4. Er wordt een bevestigings bericht weer gegeven wanneer de U-SQL-uitbrei dingen zijn geïnstalleerd.

    De omgeving instellen voor python en R

    Notitie

    Voor de beste ervaring met python-en R-taal service installeert u VSCode python en R-extensie.

Python-bestand ontwikkelen

  1. Klik op het nieuwe bestand in uw werk ruimte.

  2. Schrijf uw code in U-SQL. Hier volgt een voor beeld van code.

    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 met de rechter muisknop op een script bestand en selecteer ADL: python-code achter bestand genereren.

  4. Het xxx.usql.py -bestand wordt gegenereerd in de werkmap. Schrijf uw code in een python-bestand. Hier volgt een voor beeld van code.

    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 met de rechter muisknop in USQL -bestand, klik op script compileren of taak verzenden om taak uit te voeren.

R-bestand ontwikkelen

  1. Klik op het nieuwe bestand in uw werk ruimte.

  2. Schrijf uw code in U-SQL-bestand. Hier volgt een voor beeld van code.

    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 met de rechter muisknop in USQL -bestand en selecteer ADL: R-code achter bestand genereren.

  4. Het bestand xxx. usql. r wordt gegenereerd in de werkmap. Schrijf uw code in het R-bestand. Hier volgt een voor beeld van code.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Klik met de rechter muisknop in USQL -bestand, klik op script compileren of taak verzenden om taak uit te voeren.

C#-bestand ontwikkelen

Een code-behind bestand is een C#-bestand dat is gekoppeld aan één U-SQL-script. U kunt een script definiëren dat is toegewezen aan UDO, UDA, UDT en UDF in het code-behind-bestand. De UDO, UDA, UDT en UDF kunnen rechtstreeks in het script worden gebruikt zonder eerst de assembly te registreren. Het code-behind-bestand wordt opgeslagen in dezelfde map als het bijbehorende peering U-SQL-script bestand. Als het script de naam xxx. usql heeft, wordt de onderliggende code benoemd als xxx. usql. cs. Als u het code-behind-bestand hand matig verwijdert, is de functie voor code achter uitgeschakeld voor het bijbehorende U-SQL-script. Zie voor meer informatie over het schrijven van klant code voor U-SQL-script, het schrijven en gebruiken van aangepaste code in U-SQL: User-Defined-functies.

  1. Klik op het nieuwe bestand in uw werk ruimte.

  2. Schrijf uw code in U-SQL-bestand. Hier volgt een voor beeld van code.

    @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 met de rechter muisknop in USQL -bestand en selecteer ADL: cs-code achter bestand genereren.

  4. Het bestand xxx. usql. cs wordt gegenereerd in de werkmap. Schrijf uw code in het CS-bestand. Hier volgt een voor beeld van code.

    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 met de rechter muisknop in USQL -bestand, klik op script compileren of taak verzenden om taak uit te voeren.

Volgende stappen