다음을 통해 공유


Azure Data Lake Analytics에서 Python 코드를 사용하여 U-SQL 스크립트 확장

중요합니다

Azure Data Lake Analytics는 2024년 2월 29일에 사용 중지되었습니다. 에 대해 더 알고 싶다면 이 공지을 확인하세요.

데이터 분석을 위해 조직은 Azure Synapse Analytics 또는 Microsoft Fabric 사용할 수 있습니다.

필수 조건

시작하기 전에 Python 확장이 Azure Data Lake Analytics 계정에 설치되어 있는지 확인합니다.

  • Azure Portal에서 Data Lake Analytics 계정으로 이동합니다.
  • 왼쪽 메뉴의 시작 아래에서 샘플 스크립트 선택
  • U-SQL 확장 설치를 선택한 다음 확인

개요

U-SQL용 Python 확장을 사용하면 개발자가 Python 코드의 대규모 병렬 실행을 수행할 수 있습니다. 다음 예제에서는 기본 단계를 보여 줍니다.

  • 문을 REFERENCE ASSEMBLY 사용하여 U-SQL 스크립트에 Python 확장을 사용하도록 설정
  • 작업을 REDUCE 사용하여 키의 입력 데이터 분할
  • U-SQL용 Python 확장에는 리듀서에 할당된 각 꼭짓점에서 Python 코드를 실행하는 기본 제공 리듀서(Extension.Python.Reducer)가 포함되어 있습니다.
  • U-SQL 스크립트에는 pandas DataFrame을 입력으로 수락하고 pandas DataFrame을 출력으로 반환하는 함수가 포함된 usqlml_main Python 코드가 포함되어 있습니다.
REFERENCE ASSEMBLY [ExtPython];
DECLARE @myScript = @"
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
";
@t  =
    SELECT * FROM
       (VALUES
           ("D1","T1","A1","@foo Hello World @bar"),
           ("D2","T2","A2","@baz Hello World @beer")
       ) AS date, time, author, tweet );
@m  =
    REDUCE @t ON date
    PRODUCE date string, mentions string
    USING new Extension.Python.Reducer(pyScript:@myScript);
OUTPUT @m
    TO "/tweetmentions.csv"
    USING Outputters.Csv();

Python이 U-SQL과 통합되는 방법

데이터 형식

  • U-SQL의 문자열과 숫자 열은 Pandas와 U-SQL 간의 변환 과정인 as-is에 의해 처리됩니다.
  • U-SQL Null은 Pandas의 NA 값으로 변환되고 그 반대로도 변환됩니다.

스키마

  • Pandas의 인덱스 벡터는 U-SQL에서 지원되지 않습니다. Python 함수의 모든 입력 데이터 프레임에는 항상 0부터 행 수를 뺀 1까지의 64비트 숫자 인덱스가 있습니다.
  • U-SQL 데이터 세트에는 중복 열 이름이 있을 수 없습니다.
  • 문자열이 아닌 U-SQL 데이터 세트 열 이름입니다.

Python 버전

Python 3.5.1(Windows용으로 컴파일됨)만 지원됩니다.

표준 Python 모듈

모든 표준 Python 모듈이 포함됩니다.

추가 Python 모듈

표준 Python 라이브러리 외에도 일반적으로 사용되는 몇 가지 Python 라이브러리가 포함됩니다.

  • 팬더
  • numpy (파이썬의 수치 계산용 라이브러리)
  • numexpr

예외 메시지

현재 Python 코드의 예외는 일반 꼭짓점 오류로 표시됩니다. 나중에 U-SQL 작업 오류 메시지에 Python 예외 메시지가 표시됩니다.

입력 및 출력 크기 제한 사항

모든 꼭짓점은 제한된 양의 메모리를 할당합니다. 현재 해당 제한은 AU의 경우 6GB입니다. 입력 및 출력 DataFrame은 Python 코드의 메모리에 있어야 하므로 입력 및 출력의 총 크기는 6GB를 초과할 수 없습니다.

다음 단계