Partager via


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# derrière 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 Azure Data Lake Tools pour Visual Studio Code.

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

Conditions préalables pour Python et R

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

  1. Ouvrez votre compte dans le portail.

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

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

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

    Captures d’écran montrant la sélection d’exemples de scripts dans Vue d’ensemble, en sélectionnant Plus et Installer des extensions U-SQL.

    Remarque

    Pour des expériences optimales sur le service de langage Python et R, installez 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 dans 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électionnez 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 le 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 Soumettre la tâche pour exécuter le travail.

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 dans le fichier USQL, puis sélectionnez ADL : Générer un fichier de code sous-jacent 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 Soumettre la tâche pour exécuter le travail.

Développer un fichier C#

Un fichier code-behind est un fichier C# associé à un seul script U-SQL. Vous pouvez définir un script dédié à UDO, UDA, UDT et UDF dans le fichier code-behind. Les fonctions UDO, UDA, UDT et UDF peuvent être utilisées directement dans le script sans enregistrer l'assembly au préalable. Le fichier de code-behind est placé dans le même dossier que celui de son fichier de script U-SQL associé. Si le script est nommé xxx.usql, le code-behind est appelé xxx.usql.cs. Si vous supprimez manuellement le fichier code-behind, la fonctionnalité code-behind est désactivée pour son 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 : User-Defined Functions.

  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 dans le fichier USQL , puis sélectionnez ADL : Générer le 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 Soumettre la tâche pour exécuter le travail.

Étapes suivantes