Amazon Glue PySpark 转换参考 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Glue PySpark 转换参考

Amazon Glue 提供了以下可在 PySpark ETL 操作中使用的内置转换。您的数据在一个称为 DynamicFrame 的数据结构中从转换传递到转换,该数据结构是 Apache Spark SQL DataFrame 的扩展。DynamicFrame 包含您的数据,并引用其架构来处理您的数据。

此外,其中的大多数转换也将作为 DynamicFrame 类的方法存在。更多相关信息,请参阅 DynamicFrame 转换

数据集成转换

对于 Amazon 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

使用 Amazon CLI 的示例会话

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

DI 转换:

Maven:将插件与 Spark 应用程序捆绑在一起

在本地开发 Spark 应用程序时,您可以通过在 Maven 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>

您也可以直接从 Amazon 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/