Desarrollo de trabajos U-SQL con Python, R y C# para Azure Data Lake Analytics en Visual Studio Code

Aprenda a usar Visual Studio Code (VS Code) para escribir código de Python, R y C# detrás con U-SQL y enviar trabajos al servicio Azure Data Lake. Para más información sobre Azure Data Lake Tools para VS Code, consulte Uso del código de Herramientas de Azure Data Lake para Visual Studio.

Antes de escribir código personalizado subyacente, debe abrir una carpeta o un área de trabajo en VS Code.

Requisitos previos para Python y R

Registre los ensamblados de extensiones de Python y R en la cuenta de ADL.

  1. Abra la cuenta en el portal.

    • Seleccione Información general.
    • Seleccione Script de ejemplo.
  2. Seleccione Más.

  3. Seleccione Instalar las extensiones de U-SQL.

  4. Aparece el mensaje de confirmación una vez instaladas las extensiones de U-SQL.

    Capturas de pantalla que muestran la selección de Scripts de ejemplo en Información general, seleccionando Más e instalar extensiones de U-SQL.

    Nota

    Para optimizar la experiencia con el servicio de lenguaje Python y R, instale la extensión de Python y R para VSCode.

Desarrollo de archivos de Python

  1. Seleccione el nuevo archivo en el área de trabajo.

  2. Escriba el código en U-SQL. A continuación, se muestra un ejemplo de código.

    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. Haga clic con el botón derecho en un archivo de script y, luego, seleccione ADL: Generate Python Code Behind File.

  4. Se genera el archivo xxx.usql.py en la carpeta de trabajo. Escriba el código en el archivo de Python. A continuación, se muestra un ejemplo de código.

    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. Haga clic con el botón derecho en el archivo USQL ; puede seleccionar Compilar script o Enviar trabajo a trabajo en ejecución.

Desarrollo de archivos de R

  1. Seleccione el nuevo archivo en el área de trabajo.

  2. Escriba el código en el archivo U-SQL. A continuación, se muestra un ejemplo de código.

    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. Haga clic con el botón derecho en el archivo USQL y después seleccione ADL: Generate R Code Behind File.

  4. Se genera el archivo xxx.usql.r en la carpeta de trabajo. Escriba el código en el archivo de R. A continuación, se muestra un ejemplo de código.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Haga clic con el botón derecho en el archivo USQL ; puede seleccionar Compilar script o Enviar trabajo a trabajo en ejecución.

Desarrollo de archivos de C#

Un archivo de código subyacente es un archivo C# asociado con un solo script U-SQL. Puede definir un script dedicado a UDO, UDA, UDT o UDF en el archivo de código subyacente. UDF, UDO, UDA o UDT se puede usar directamente en el script sin tener que registrar primero el ensamblado. El archivo de código subyacente se coloca en la misma carpeta que su archivo de script U-SQL de emparejamiento. Si el script se denomina xxx.usql, el código subyacente se denomina xxx.usql.cs. Si elimina manualmente el archivo de código subyacente, la característica de código subyacente se deshabilita para su script U-SQL asociado. Para más información sobre cómo escribir código de cliente para el script U-SQL, consulte Writing and Using Custom Code in U-SQL – User-Defined Functions (Escritura y uso de código personalizado en U-SQL: funciones definidas por el usuario).

  1. Seleccione el nuevo archivo en el área de trabajo.

  2. Escriba el código en el archivo U-SQL. A continuación, se muestra un ejemplo de código.

    @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. Haga clic con el botón derecho en el archivo USQL y después seleccione ADL: Generate CS Code Behind File.

  4. Se genera el archivo xxx.usql.cs en la carpeta de trabajo. Escriba el código en el archivo CS. A continuación, se muestra un ejemplo de código.

    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. Haga clic con el botón derecho en el archivo USQL ; puede seleccionar Compilar script o Enviar trabajo a trabajo en ejecución.

Pasos siguientes