VS Code(Visual Studio Code)를 사용하여 U-SQL과 함께 Python, R 및 C# 코드를 작성하고 Azure Data Lake 서비스에 작업을 제출하는 방법을 알아봅니다. VS Code용 Azure Data Lake Tools에 대한 자세한 내용은 Visual Studio Code용 Azure Data Lake Tools을 참조하세요.
코드 비하인드 사용자 지정 코드를 작성하기 전에 VS Code에서 폴더 또는 작업 영역을 열어야 합니다.
Python 및 R에 대한 필수 구성 요소
ADL 계정에 대한 Python 및 R 확장 어셈블리를 등록합니다.
포털에서 계정을 엽니다.
- 개요을 선택하세요.
- 샘플 스크립트선택합니다.
자세히를 선택합니다.
U-SQL 확장설치 선택합니다.
U-SQL 확장이 설치된 후에 확인 메시지가 표시됩니다.
비고
Python 및 R 언어 서비스에 대한 최상의 환경을 위해 VSCode 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: 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: 파일뒤에 R 코드 생성을 선택합니다.
xxx.usql.r 파일이 작업 폴더에 생성됩니다. R 파일에 코드를 작성합니다. 다음은 코드 샘플입니다.
load("my_model_LM_Iris.rda") outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
USQL 파일을 마우스 오른쪽 버튼으로 클릭하면, 스크립트 컴파일 또는 작업 제출 옵션을 선택하여 작업을 실행할 수 있습니다.
C# 파일 개발
코드 숨김 파일은 단일 U-SQL 스크립트와 연결된 C# 파일입니다. 코드 숨김 파일에서 UDO, UDA, UDT 및 UDF 전용 스크립트를 정의할 수 있습니다. UDO, UDA, UDT 및 UDF는 어셈블리를 먼저 등록하지 않고 스크립트에서 직접 사용할 수 있습니다. 코드 숨김 파일은 피어링 U-SQL 스크립트 파일과 동일한 폴더에 배치됩니다. 스크립트 이름이 xxx.usql이면 코드 비하인드의 이름은 xxx.usql.cs입니다. 코드 숨김 파일을 수동으로 삭제하는 경우 연결된 U-SQL 스크립트에 대해 코드 숨김 기능을 사용할 수 없습니다. U-SQL 스크립트에 대한 고객 코드 작성에 대한 자세한 내용은 U-SQL에서 사용자 지정 코드 작성 및 사용 : User-Defined Functions참조하세요.
작업 영역에서 새 파일 선택합니다.
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: 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 파일을 마우스 오른쪽 버튼으로 클릭하면, 스크립트 컴파일 또는 작업 제출 옵션을 선택하여 작업을 실행할 수 있습니다.
다음 단계
- Visual Studio Code용 Azure Data Lake Tools를 사용하십시오
- Visual Studio Code 사용하여 U-SQL 로컬 실행 및 로컬 디버그
- PowerShell 사용하여 Data Lake Analytics 시작
- Azure Portal 사용하여 Data Lake Analytics 시작
- Visual Studio용 Data Lake Tools를 사용하여 U-SQL 애플리케이션 개발
- Data Lake Analytics(U-SQL) 카탈로그 사용