AWS Glue PySpark 轉換參考 - AWS 連接詞

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Glue PySpark 轉換參考

AWS Glue 提供了以下內置的轉換,您可以在 PySpark ETL 操作中使用。您的數據從轉換傳遞到轉換稱為一個數據結構 DynamicFrame,這是一個 Apache 星火 SQL 的擴展DataFrameDynamicFrame 包含您的資料,而您可以參考其結構描述以處理資料。

這些轉換大多數也作為 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:將插件與星火應用程序捆綁在一起

您可以通過在 Maven 中添加插件依賴關係,同時在本地開發 Spark 應用程序pom.xml時,將轉換依賴關係與 Spark 應用程序和 Spark 發行版(3.3 版)捆綁在一起。

<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/