AWS Glue 提供了以下可在 PySpark ETL 操作中使用的内置转换。您的数据在一个称为 DynamicFrame 的数据结构中从转换传递到转换,该数据结构是 Apache Spark SQL 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 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/