Compartir a través de


Desarrollo de 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# 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 de Azure Data Lake Tools para Visual Studio Code.

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 ensamblados de extensiones de Python y R para 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 extensiones de U-SQL.

  4. El mensaje de confirmación se muestra después de instalar 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 obtener las mejores experiencias en el servicio de lenguaje Python y R, instale la extensión python y R de VSCode.

Desarrollo de un archivo 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, a continuación, seleccione ADL: Generate Python Code Behind File (Generar archivo de código subyacente de Python).

  4. El archivo xxx.usql.py se genera 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 al trabajo en ejecución.

Desarrollo de un archivo 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 seleccione ADL: Generate R Code Behind File (ADL: Generar archivo subyacente de código R).

  4. El archivo xxx.usql.r se genera en la carpeta de trabajo. Escriba el código en el archivo 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 al trabajo en ejecución.

Desarrollo de un archivo de C#

Un archivo de código subyacente es un archivo de C# asociado a un único script U-SQL. Puede definir un script dedicado a UDO, UDA, UDT y UDF en el archivo de código subyacente. La UDO, la UDA, la UDT y la UDF se pueden usar directamente en el guion sin registrar primero el ensamblaje. El archivo de código subyacente se coloca en la misma carpeta que su correspondiente archivo de script U-SQL. 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 está deshabilitada para su script U-SQL asociado. Para obtener más información sobre cómo escribir código de cliente para el script U-SQL, vea Escritura y uso de código personalizado en U-SQL: User-Defined Functions.

  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, a continuación, seleccione ADL: Generate CS Code Behind File (Generar archivo subyacente de código CS).

  4. El archivo xxx.usql.cs se genera 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 al trabajo en ejecución.

Pasos siguientes