Разработка U-SQL с помощью Python, R, и C# для Azure Data Lake Analytics в Visual Studio Code
Узнайте, как использовать Visual Studio Code (VS Code) для написания кода Python, R и C# с помощью U-SQL и отправки заданий в службу Azure Data Lake. Дополнительные сведения о средствах Azure Data Lake для VS Code см. в статье Использование кода Средства Azure Data Lake для Visual Studio.
Прежде чем писать пользовательский код программной части, необходимо открыть папку или рабочую область в VS Code.
Предварительные требования для Python и R
Зарегистрируйте сборки расширений Python и R для учетной записи ADL.
Откройте учетную запись на портале.
- Щелкните Обзор.
- Выберите Пример скрипта.
Выберите Дополнительно.
Выберите Установка расширений U-SQL.
После установки расширений U-SQL отображается сообщение с подтверждением.
Примечание
Установите расширения VSCode для Python и R, чтобы получить все возможности при использовании языковых служб Python и R.
Разработка файла Python
Выберите Новый файл в рабочей области.
Запишите свой код в U-SQL. Ниже приведен пример кода.
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();
Щелкните файл сценария правой кнопкой мыши и выберите параметр ADL: Generate Python Code Behind File (ADL: создать файл с выделенным кодом Python).
В рабочей области будет создан файл xxx.usql.py. Запишите свой код в файл Python. Ниже приведен пример кода.
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
Щелкните правой кнопкой мыши usQL-файл и выберите Скомпилировать скрипт или Отправить задание в выполняющееся задание.
Разработка файла R
Выберите Новый файл в рабочей области.
Запишите свой код в файл U-SQL. Ниже приведен пример кода.
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();
Щелкните файл USQL правой кнопкой мыши и выберите ADL: Generate CS Code Behind File (ADL: создать файл с выделенным кодом R).
В рабочей области будет создан файл xxx.usql.r. Запишите свой код в файл R. Ниже приведен пример кода.
load("my_model_LM_Iris.rda") outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
Щелкните правой кнопкой мыши usQL-файл и выберите Скомпилировать скрипт или Отправить задание в выполняющееся задание.
Разработка файла C#
Файл с выделенным кодом является файлом C#, который связан с одним скриптом U-SQL. В файле с выделенным кодом можно определить скрипт, который относится к UDO, UDA, UDT и UDF. Все эти объекты можно будет напрямую использовать в скрипте, не регистрируя для них сборку. Файл с выделенным кодом помещается в ту же папку, что и связанный с ним файл скрипта U-SQL. Например, для скрипта с именем xxx.usql, файл Code Behind будет иметь имя xxx.usql.cs. Если вручную удалить файл с выделенным кодом, функция выделенного кода будет отключена для связанного с ним скрипта U-SQL. Дополнительные сведения о написании пользовательского кода для скриптов U-SQL можно найти в записи блога Writing and Using Custom Code in U-SQL – User-Defined Functions (Написание и использование пользовательского кода в U-SQL — определяемые пользователем функции).
Выберите Новый файл в рабочей области.
Запишите свой код в файл U-SQL. Ниже приведен пример кода.
@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();
Щелкните файл USQL правой кнопкой мыши и выберите ADL: Generate CS Code Behind File (ADL: создать файл с выделенным кодом CS).
В рабочей области будет создан файл xxx.usql.cs. Запишите свой код в файл CS. Ниже приведен пример кода.
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(); } } }
Щелкните правой кнопкой мыши usQL-файл и выберите Скомпилировать скрипт или Отправить задание в выполняющееся задание.
Дальнейшие действия
- Использование средств Azure Data Lake для Visual Studio Code
- Локальный запуск и локальная отладка U-SQL в Visual Studio Code
- Приступая к работе с аналитикой озера данных с помощью PowerShell
- Приступая к работе с аналитикой озера данных с помощью портала Azure
- Использование инструментов озера данных для Visual Studio для разработки приложений U-SQL
- Использование каталога U-SQL Azure Data Lake Analytics