Développer U-SQL avec Python, R et C# pour Azure Data Lake Analytics dans Visual Studio Code

Découvrez comment utiliser Visual Studio Code (VS Code) pour écrire du code Python, R et C# avec U-SQL et envoyer des travaux au service Azure Data Lake. Pour plus d’informations sur Azure Data Lake Tools pour VS Code, consultez Utiliser le code Azure Data Lake Tools pour Visual Studio.

Avant d’écrire du code personnalisé code-behind, vous devez ouvrir un dossier ou un espace de travail dans VS Code.

Prérequis pour Python et R

Inscrivez les assemblys d’extensions R et Python pour votre compte ADL.

  1. Ouvrez votre compte sur le portail.

    • Sélectionnez Vue d’ensemble.
    • Sélectionnez Exemple de script.
  2. Sélectionnez Plus.

  3. Sélectionnez Installer des extensions U-SQL.

  4. Un message de confirmation s’affiche une fois que les extensions U-SQL sont installées.

    Captures d’écran montrant la sélection d’exemples de scripts dans Vue d’ensemble, la sélection d’autres et l’option Installer les extensions U-SQL.

    Notes

    Pour optimiser les expériences sur le service de langage R et Python, veuillez installer l’extension VSCode Python et R.

Développer un fichier Python

  1. Sélectionnez le nouveau fichier dans votre espace de travail.

  2. Écrivez votre code en U-SQL. Voici un exemple de 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. Cliquez avec le bouton droit sur un fichier de script, puis sélectionner ADL: Generate Python Code Behind File (ADL : Générer un fichier code-behind Python).

  4. Le fichier xxx.usql.py est généré dans votre dossier de travail. Écrivez votre code dans un fichier Python. Voici un exemple de 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. Cliquez avec le bouton droit dans le fichier USQL . Vous pouvez sélectionner Compiler le script ou Envoyer le travail au travail en cours d’exécution.

Développer un fichier R

  1. Sélectionnez le nouveau fichier dans votre espace de travail.

  2. Écrivez votre code dans le fichier U-SQL. Voici un exemple de 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. Cliquez avec le bouton droit sur le fichier USQL, puis sélectionnez ADL: Generate R Code Behind File (ADL : Générer un fichier code-behind R).

  4. Le fichier xxx.usql.r est généré dans votre dossier de travail. Écrivez votre code dans le fichier R. Voici un exemple de code.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Cliquez avec le bouton droit dans le fichier USQL . Vous pouvez sélectionner Compiler le script ou Envoyer le travail au travail en cours d’exécution.

Développer un fichier C#

Un fichier code-behind est un fichier C# associé à un script U-SQL. Vous pouvez définir un script dédié à UDO, UDA, UDT et UDF dans le fichier code-behind. UDO, UDA, UDT et UDF peuvent être utilisés directement dans le script sans inscription préalable de l’assembly. Le fichier code-behind est placé dans le même dossier que le fichier de script U-SQL correspondant. Si le script est nommé xxx.usql, le fichier code-behind est nommé xxx.usql.cs. Si vous supprimez manuellement le fichier code-behind, la fonctionnalité code-behind est désactivée pour le script U-SQL associé. Pour plus d’informations sur l’écriture de code client pour le script U-SQL, consultez Écriture et utilisation de code personnalisé dans U-SQL - Fonctions définies par l’utilisateur.

  1. Sélectionnez le nouveau fichier dans votre espace de travail.

  2. Écrivez votre code dans le fichier U-SQL. Voici un exemple de 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. Cliquez avec le bouton droit sur le fichier USQL, puis sélectionner ADL: Generate CS Code Behind File (ADL : Générer un fichier code-behind CS).

  4. Le fichier xxx.usql.cs est généré dans votre dossier de travail. Écrivez votre code dans le fichier CS. Voici un exemple de 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. Cliquez avec le bouton droit dans le fichier USQL . Vous pouvez sélectionner Compiler le script ou Envoyer le travail au travail en cours d’exécution.

Étapes suivantes