Udostępnij za pomocą


Opracowywanie języka U-SQL przy użyciu języków Python, R i C# dla usługi Azure Data Lake Analytics w programie Visual Studio Code

Dowiedz się, jak używać programu Visual Studio Code (VS Code) do pisania kodu w językach Python, R i C# za pomocą języka U-SQL i przesyłania zadań do usługi Azure Data Lake. Aby uzyskać więcej informacji na temat narzędzi Azure Data Lake Tools for VS Code, zobacz Use the Azure Data Lake Tools for Visual Studio Code (Korzystanie z narzędzi Azure Data Lake Tools for Visual Studio Code).

Przed napisaniem niestandardowego kodu w plikach code-behind, należy otworzyć folder lub obszar roboczy w edytorze Visual Studio Code.

Wymagania wstępne dotyczące języka Python i języka R

Zarejestruj zestawy rozszerzeń języka Python oraz R na swoim koncie usługi ADL.

  1. Otwórz konto w portalu.

    • Wybierz Przegląd.
    • Wybierz pozycję Przykładowy skrypt.
  2. Wybierz Więcej.

  3. Wybierz pozycję Zainstaluj rozszerzenia U-SQL.

  4. Komunikat potwierdzający jest wyświetlany po zainstalowaniu rozszerzeń U-SQL.

    Zrzuty ekranu przedstawiające wybieranie pozycji Przykładowe skrypty w obszarze Przegląd, wybierając pozycję Więcej i Zainstaluj rozszerzenia U-SQL.

    Uwaga / Notatka

    Aby uzyskać najlepsze wrażenia z usługi językowej Python i R, zainstaluj rozszerzenie VSCode Python i R.

Opracowywanie pliku języka Python

  1. Wybierz nowy plik w obszarze roboczym.

  2. Napisz kod w języku U-SQL. Poniżej przedstawiono przykładowy kod.

    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. Kliknij prawym przyciskiem myszy plik skryptu, a następnie wybierz pozycję ADL: Generuj kod języka Python za plikiem.

  4. Plik xxx.usql.py jest generowany w folderze roboczym. Napisz kod w pliku języka Python. Poniżej przedstawiono przykładowy kod.

    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. Kliknij prawym przyciskiem myszy plik USQL , możesz wybrać polecenie Kompiluj skrypt lub Prześlij zadanie do uruchomionego zadania.

Opracowywanie pliku języka R

  1. Wybierz nowy plik w obszarze roboczym.

  2. Napisz kod w pliku U-SQL. Poniżej przedstawiono przykładowy kod.

    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. Kliknij prawym przyciskiem myszy plik USQL, a następnie wybierz pozycję ADL: Wygeneruj kod R dla pliku głównego.

  4. Plik xxx.usql.r jest generowany w folderze roboczym. Napisz kod w pliku języka R. Poniżej przedstawiono przykładowy kod.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. Kliknij prawym przyciskiem myszy plik USQL , możesz wybrać polecenie Kompiluj skrypt lub Prześlij zadanie do uruchomionego zadania.

Opracowywanie pliku C#

Plik związany z kodem jest plikiem języka C# skojarzonym z pojedynczym skryptem U-SQL. Można zdefiniować skrypt przeznaczony dla UDO, UDA, UDT i UDF w pliku kodu zapisanego w tle. UDO, UDA, UDT i UDF można używać bezpośrednio w skry skryfcie bez wcześniejszego zarejestrowania zestawu. Plik z kodem jest umieszczany w tym samym folderze co jego plik skryptu U-SQL komunikacji równorzędnej. Jeśli skrypt ma nazwę xxx.usql, kod-behind ma nazwę xxx.usql.cs. Jeśli ręcznie usuniesz plik code-behind, funkcja code-behind zostanie wyłączona dla powiązanego skryptu U-SQL. Aby uzyskać więcej informacji na temat pisania kodu klienta dla skryptu U-SQL, zobacz Pisanie i używanie kodu niestandardowego w języku U-SQL: User-Defined Functions.

  1. Wybierz nowy plik w obszarze roboczym.

  2. Napisz kod w pliku U-SQL. Poniżej przedstawiono przykładowy kod.

    @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. Kliknij prawym przyciskiem myszy plik USQL , a następnie wybierz pozycję ADL: Generuj kod CS za plikiem.

  4. Plik xxx.usql.cs jest generowany w folderze roboczym. Napisz kod w pliku CS. Poniżej przedstawiono przykładowy kod.

    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. Kliknij prawym przyciskiem myszy plik USQL , możesz wybrać polecenie Kompiluj skrypt lub Prześlij zadanie do uruchomionego zadania.

Dalsze kroki