Compartilhar via


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

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

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 conjuntos de extensões Python e R para sua conta do ADL.

  1. Abra sua conta no portal.

    • Selecione Visão geral.
    • Selecione o script de exemplo.
  2. Selecione Mais.

  3. Selecione Instalar Extensões U-SQL.

  4. A mensagem de confirmação é exibida depois que as extensões U-SQL são instaladas.

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

    Observação

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

Desenvolver arquivo Python

  1. Selecione o Novo Arquivo em seu workspace.

  2. Escreva seu código no 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 do mouse em um arquivo de script e, em seguida, selecione ADL: Gerar Arquivo de Código Subjacente para Python.

  4. O arquivo xxx.usql.py é gerado em sua 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 , você pode selecionar Compilar Script ou Enviar Trabalho para o trabalho em execução.

Desenvolver arquivo 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 do mouse no arquivo USQL e selecione ADL: Gerar arquivo R Code Behind.

  4. O arquivo xxx.usql.r é gerado em sua 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 , você pode selecionar Compilar Script ou Enviar Trabalho para o trabalho em execução.

Desenvolver arquivo C#

Um arquivo code-behind é um arquivo C# associado a um único script U-SQL. Você pode definir um script dedicado a UDO, UDA, UDT e UDF no arquivo code-behind. Os UDO, UDA, UDT e UDF podem ser usados diretamente em scripts sem a necessidade de registrar o assembly previamente. O arquivo code-behind é colocado na mesma pasta que o arquivo de script U-SQL associado a ele. Se o script for chamado xxx.usql, o code-behind será nomeado como xxx.usql.cs. Se você excluir manualmente o arquivo code-behind, o recurso code-behind será desabilitado para seu script U-SQL associado. Para obter mais informações sobre como escrever código do cliente para script U-SQL, consulte Escrever e usar código personalizado no U-SQL: User-Defined Functions.

  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 do mouse no arquivo USQL e selecione ADL: Gerar arquivo CS Code Behind.

  4. O arquivo xxx.usql.cs é gerado em sua 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 , você pode selecionar Compilar Script ou Enviar Trabalho para o trabalho em execução.

Próximas etapas