Desenvolver U-SQL com Python, R e C# para Azure Data Lake Analytics no Visual Studio Code

Saiba como usar Visual Studio Code (VS Code) para escrever código Python, R e C# com U-SQL e enviar trabalhos para o serviço do Azure Data Lake. Para obter mais informações sobre as Ferramentas do Azure Data Lake para VS Code, consulte Usar o código Ferramentas do Azure Data Lake para Visual Studio.

Antes de escrever código personalizado code-behind, você precisa abrir uma pasta ou um workspace no VS Code.

Pré-requisitos para Python e R

Registre assemblies de extensões de Python e R para sua conta do ADL.

  1. Abra sua conta no portal.

    • Selecione Visão geral.
    • Selecione Script de Exemplo.
  2. Selecione Mais.

  3. Selecione Instalar Extensões U-SQL.

  4. A mensagem de confirmação é exibida após a instalação das extensões de U-SQL.

    Capturas de tela mostrando a seleção de Scripts de Exemplo em Visão Geral, selecionando Mais e Instalar Extensões U-SQL.

    Observação

    Para obter a melhor experiência no serviço de linguagem Python e R, instale a extensão para VSCode de Python e R.

Desenvolver arquivo em Python

  1. Selecione o Novo Arquivo em seu workspace.

  2. Escreva seu código em U-SQL. Veja a seguir um exemplo 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. Clique com o botão direito em um arquivo de script e selecione ADL: Gerar Arquivo de Code Behind em Python.

  4. O arquivo xxx.usql.py é gerado na pasta de trabalho. Escreva seu código no arquivo Python. Veja a seguir um exemplo 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. Clique com o botão direito do mouse no arquivo USQL , selecione Compilar Script ou Enviar Trabalho para o trabalho em execução.

Desenvolver arquivo em R

  1. Selecione o Novo Arquivo em seu workspace.

  2. Escreva seu código no arquivo U-SQL. Veja a seguir um exemplo 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. Clique com o botão direito em um arquivo USQL e selecione ADL: Gerar Arquivo de Code Behind em R.

  4. O arquivo xxx.usql.r é gerado na pasta de trabalho. Escreva seu código no arquivo R. Veja a seguir um exemplo de código.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Clique com o botão direito do mouse no arquivo USQL , selecione Compilar Script ou Enviar Trabalho para o trabalho em execução.

Desenvolver arquivo em C#

Um arquivo code-behind é um arquivo em C# associado a um único script U-SQL. Você pode definir um script dedicado a UDO, UDA, UDT e UDF no arquivo code-behind. UDO, UDA, UDT e UDF podem ser usados diretamente no script sem registrar o assembly primeiro. O arquivo code-behind é colocado na mesma pasta que seu arquivo de script U-SQL de emparelhamento. Se o script for chamado de xxx.usql, o code-behind será chamado de xxx.usql.cs. Se você excluir manualmente o arquivo code-behind, o recurso code-behind será desabilitado para seu script U-SQL associado. Para saber mais sobre como escrever código do cliente para script U-SQL, veja Writing and Using Custom Code in U-SQL – User-Defined Functions (Escrevendo e usado código personalizado em U-SQL — Funções Definidas pelo Usuário).

  1. Selecione o Novo Arquivo em seu workspace.

  2. Escreva seu código no arquivo U-SQL. Veja a seguir um exemplo 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. Clique com o botão direito no arquivo USQL e selecione ADL: Gerar Arquivo de Code Behind em CS.

  4. O arquivo xxx.usql.cs é gerado na pasta de trabalho. Escreva seu código no arquivo CS. Veja a seguir um exemplo 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. Clique com o botão direito do mouse no arquivo USQL , selecione Compilar Script ou Enviar Trabalho para o trabalho em execução.

Próximas etapas