AWS Glue PySpark 변환 참조 - AWS Glue

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Glue PySpark 변환 참조

AWS Glue는 PySpark ETL 작업에 사용할 수 있는 다음과 같은 기본 제공 변환을 제공합니다. 데이터는 Apache Spark SQL의 DynamicFrame확장인 a라는 데이터 구조를 통해 변환에서 변환으로 전달됩니다. DataFrame DynamicFrame은 데이터를 포함하고 데이터 스키마를 참조하여 데이터를 진행합니다.

이러한 변환의 대부분은 DynamicFrame 클래스의 메서드로도 존재합니다. 자세한 내용은 변환을 참조하십시오DynamicFrame .

데이터 통합 변환

AWS Glue 4.0 이상의 경우 를 사용하여 작업 인수를 생성하거나 업데이트하십시오key: --enable-glue-di-transforms, value: true.

예제 작업 스크립트:

from pyspark.context import SparkContext from awsgluedi.transforms import * sc = SparkContext() input_df = spark.createDataFrame( [(5,), (0,), (-1,), (2,), (None,)], ["source_column"], ) try: df_output = math_functions.IsEven.apply( data_frame=input_df, spark_context=sc, source_column="source_column", target_column="target_column", value=None, true_string="Even", false_string="Not even", ) df_output.show() except: print("Unexpected Error happened ") raise

노트북을 사용한 예제 세션

%idle_timeout 2880 %glue_version 4.0 %worker_type G.1X %number_of_workers 5 %region eu-west-1
%%configure { "--enable-glue-di-transforms": "true" }
from pyspark.context import SparkContext from awsgluedi.transforms import * sc = SparkContext() input_df = spark.createDataFrame( [(5,), (0,), (-1,), (2,), (None,)], ["source_column"], ) try: df_output = math_functions.IsEven.apply( data_frame=input_df, spark_context=sc, source_column="source_column", target_column="target_column", value=None, true_string="Even", false_string="Not even", ) df_output.show() except: print("Unexpected Error happened ") raise

다음을 사용하는 예제: 세션 AWS CLI

aws glue create-session --default-arguments "--enable-glue-di-transforms=true"

DI 변환:

Maven: Spark 애플리케이션과 플러그인 번들

Spark 애플리케이션을 로컬에서 개발하는 동안 Maven에 플러그인 종속성을 추가하여 Spark 애플리케이션 및 Spark 배포판 (버전 3.3) 과 함께 변환 종속성을 번들로 제공할 수 있습니다. pom.xml

<repositories> ... <repository> <id>aws-glue-etl-artifacts</id> <url>https://aws-glue-etl-artifacts.s3.amazonaws.com/release/ </url> </repository> </repositories> ... <dependency> <groupId>com.amazonaws</groupId> <artifactId>AWSGlueTransforms</artifactId> <version>4.0.0</version> </dependency>

다음과 같이 AWS Glue Maven 아티팩트에서 바이너리를 직접 다운로드하여 Spark 애플리케이션에 포함시킬 수도 있습니다.

#!/bin/bash sudo wget -v https://aws-glue-etl-artifacts.s3.amazonaws.com/release/com/amazonaws/AWSGlueTransforms/4.0.0/AWSGlueTransforms-4.0.0.jar -P /usr/lib/spark/jars/