기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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/