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

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

Antes de escrever código por trás do código personalizado, tem de abrir uma pasta ou uma área de trabalho no VS Code.

Pré-requisitos para Python e R

Registe as assemblagens de extensões Python e R para a sua conta do ADL.

  1. Abra a sua conta no portal.

    • Selecione Descrição geral.
    • Selecione Script de Exemplo.
  2. Selecione Mais.

  3. Selecione Instalar Extensões U-SQL.

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

    Capturas de ecrã a mostrar a seleção de Scripts de Exemplo na Descrição Geral, a selecionar Mais e Instalar Extensões U-SQL.

    Nota

    Para obter as melhores experiências no serviço de linguagem Python e R, instale a extensão VSCode Python e R.

Desenvolver ficheiro Python

  1. Selecione o Novo Ficheiro na área de trabalho.

  2. Escreva o código no U-SQL. Segue-se 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 do rato num ficheiro de script e, em seguida, selecione ADL: Gerar Código Python Por Trás do Ficheiro.

  4. O ficheiro xxx.usql.py é gerado na sua pasta de trabalho. Escreva o seu código no ficheiro Python. Segue-se 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 rato no ficheiro USQL , pode selecionar Compilar Script ou Submeter Tarefa para a tarefa em execução.

Desenvolver ficheiro R

  1. Selecione o Novo Ficheiro na área de trabalho.

  2. Escreva o código no ficheiro U-SQL. Segue-se 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 do rato no ficheiro USQL e, em seguida, selecione ADL: Gerar Código R Por Trás do Ficheiro.

  4. O ficheiro xxx.usql.r é gerado na sua pasta de trabalho. Escreva o código no ficheiro R. Segue-se 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 rato no ficheiro USQL , pode selecionar Compilar Script ou Submeter Tarefa para a tarefa em execução.

Desenvolver ficheiro C#

Um ficheiro com código atrás é um ficheiro C# associado a um único script U-SQL. Pode definir um script dedicado à UDO, UDA, UDT e UDF no ficheiro de código subjacente. O UDO, o UDA, o UDT e o UDF podem ser utilizados diretamente no script sem registar primeiro a assemblagem. O ficheiro de código atrás é colocado na mesma pasta que o respetivo ficheiro de script U-SQL de peering. Se o script tiver o nome xxx.usql, o código atrás tem o nome xxx.usql.cs. Se eliminar manualmente o ficheiro de código atrás, a funcionalidade de código subjacente será desativada para o script U-SQL associado. Para obter mais informações sobre como escrever código de cliente para script U-SQL, veja Escrita e Utilização de Código Personalizado em U-SQL: Funções User-Defined.

  1. Selecione o Novo Ficheiro na área de trabalho.

  2. Escreva o código no ficheiro U-SQL. Segue-se 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 do rato no ficheiro USQL e, em seguida, selecione ADL: Gerar Código CS aTrás do Ficheiro.

  4. O ficheiro xxx.usql.cs é gerado na sua pasta de trabalho. Escreva o código no ficheiro CS. Segue-se 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 rato no ficheiro USQL , pode selecionar Compilar Script ou Submeter Tarefa para a tarefa em execução.

Passos seguintes