Référence des transformations PySpark AWS Glue
AWS Glue fournit les transformations intégrées suivantes que vous pouvez utiliser dans les opérations ETL PySpark. Vos données sont transmises d'une transformation vers une transformation dans une structure de données appelée DynamicFrame, qui est une extension d'unDataFrame Apache Spark SQL. Le DynamicFrame contient vos données, et vous référencez son schéma pour traiter vos données.
La plupart de ces transformations existent également en tant que méthodes de la classe DynamicFrame. Pour plus d'informations, consultez les transformations DynamicFrame.
Transformations d’intégration de données
Pour AWS Glue 4.0 et versions ultérieures, créez ou mettez à jour les arguments de tâche avec key: --enable-glue-di-transforms, value: true.
Exemple de script de tâche :
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
Exemples de sessions utilisant des blocs-notes
%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
Exemples de sessions utilisant AWS CLI
aws glue create-session --default-arguments "--enable-glue-di-transforms=true"
Transformations DI :
Maven : création d’une offre groupée du plug-in pour vos applications Spark
Vous pouvez intégrer la dépendance des transformations à vos applications et distributions Spark (version 3.3) en ajoutant la dépendance du plug-in dans votre fichier Maven pom.xml, tout en développant vos applications Spark en local.
<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>
Vous pouvez également télécharger les fichiers binaires directement à partir des artefacts AWS Glue Maven et les inclure dans votre application Spark comme suit.
#!/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/