Tutorial: scrittura di uno script in AWS Glue per Spark - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: scrittura di uno script in AWS Glue per Spark

Questo tutorial mostra il processo di scrittura degli script in AWS Glue. È possibile eseguire script in base a una pianificazione con processi o in modo interattivo con sessioni. Per ulteriori informazioni sui processi, consultare Creazione di processi ETL visivi. Per ulteriori informazioni, sulle sessioni interattive, consultare Panoramica delle sessioni interattive in AWS Glue.

L'editor visivo di AWS Glue Studio offre un'interfaccia grafica, senza codice per la creazione di processi AWS Glue jobsAWS Gli script. Glue supportano i processi visivi. Danno accesso al set esteso di strumenti disponibili per lavorare con i programmi Apache Spark. È possibile accedere alle API Spark native e alle librerie AWS Glue che facilitano l'estrazione, la trasformazione e il caricamento dei flussi di lavoro (ETL) da uno script di AWS Glue.

In questo tutorial, si estrae, trasforma e carica un set di dati di multe per il parcheggio. Lo script che esegue questa operazione è identico nella forma e nella funzione a quello generato in Semplificazione di processi ETL con AWS Glue Studio nel blog dei Big Data di AWS, che introduce l'editor visivo di AWS Glue Studio. L'esecuzione di questo script all'interno di un processo consente di confrontarlo con i processi visivi e di comprendere come lavorano gli script ETL di AWS Glue. Questo ti prepara a utilizzare funzionalità aggiuntive che non sono ancora disponibili nei processi visivi.

Questo tutorial utilizza il linguaggio e le librerie Python. Funzionalità simili sono disponibili in Scala. Dopo aver concluso questo tutorial, sarà possibile generare e ispezionare uno script Scala di esempio per comprendere come eseguire il processo di scrittura di uno script ETL di AWS Glue in Scala.

Prerequisiti

Di seguito sono elencati i requisiti per questo tutorial:

  • Gli stessi prerequisiti del post sul blog di AWS Glue Studio, che indica come eseguire un modello CloudFormation.

    Questo modello utilizza il Catalogo dati AWS Glue per gestire il set di dati relativo alle multe per divieto di sosta disponibile in s3://aws-bigdata-blog/artifacts/gluestudio/. Questa operazione crea le risorse seguenti, a cui verrà fatto riferimento:

  • AWS Glue StudioRuolo: il ruolo IAM per eseguire i processi AWS Glue

  • AWS Glue StudioBucket Amazon S3: il nome del bucket Amazon S3 per archiviare i file relativi al blog

  • AWS Glue StudioTicketsYYZDB: il database del Catalogo dati di AWS Glue

  • AWS Glue StudioTableTickets: la tabella del Catalogo dati da utilizzare come origine

  • AWS Glue StudioTableTrials: la tabella del Catalogo dati da utilizzare come origine

  • AWS Glue StudioParkingTicketCount: la tabella del Catalogo dati da utilizzare come destinazione

  • Lo script generato nel post del blog di AWS Glue Studio. Nel caso in cui il post venga modificato, è possibile trovare lo script anche nel testo seguente.

Generazione di uno script di esempio

Per creare una struttura dello script, puoi utilizzare l'editor visivo di AWS Glue Studio come potente strumento di generazione del codice. Questo strumento verrà utilizzato per creare uno script di esempio.

Se si preferisce saltare queste fasi, è possibile utilizzare lo script seguente.

import sys from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job args = getResolvedOptions(sys.argv, ["JOB_NAME"]) sc = SparkContext() glueContext = GlueContext(sc) spark = glueContext.spark_session job = Job(glueContext) job.init(args["JOB_NAME"], args) # Script generated for node S3 bucket S3bucket_node1 = glueContext.create_dynamic_frame.from_catalog( database="yyz-tickets", table_name="tickets", transformation_ctx="S3bucket_node1" ) # Script generated for node ApplyMapping ApplyMapping_node2 = ApplyMapping.apply( frame=S3bucket_node1, mappings=[ ("tag_number_masked", "string", "tag_number_masked", "string"), ("date_of_infraction", "string", "date_of_infraction", "string"), ("ticket_date", "string", "ticket_date", "string"), ("ticket_number", "decimal", "ticket_number", "float"), ("officer", "decimal", "officer_name", "decimal"), ("infraction_code", "decimal", "infraction_code", "decimal"), ("infraction_description", "string", "infraction_description", "string"), ("set_fine_amount", "decimal", "set_fine_amount", "float"), ("time_of_infraction", "decimal", "time_of_infraction", "decimal"), ], transformation_ctx="ApplyMapping_node2", ) # Script generated for node S3 bucket S3bucket_node3 = glueContext.write_dynamic_frame.from_options( frame=ApplyMapping_node2, connection_type="s3", format="glueparquet", connection_options={"path": "s3://DOC-EXAMPLE-BUCKET", "partitionKeys": []}, format_options={"compression": "gzip"}, transformation_ctx="S3bucket_node3", ) job.commit()
Generazione di uno script di esempio
  1. Completare il tutorial di AWS Glue Studio. Per completare questo tutorial, consultare Creating a job in AWS Glue Studio from an example job.

  2. Passare alla scheda Script nella pagina del processo, come mostrato nello screenshot seguente:

    La scheda Script per un processo AWS Glue.
  3. Copiare tutto il contenuto della scheda Script. Impostando il linguaggio dello script nella sezione Job details (Dettagli del processo), è possibile passare dalla generazione di codice Python a Scala e viceversa.

Fase 1: Creare un processo e incollare lo script

Questa fase mostra la creazione di un processo AWS Glue nella Console di gestione AWS. Con questa operazione si imposta una configurazione che consente ad AWS Glue di eseguire lo script e si crea contemporaneamente uno spazio dove archiviarlo e modificarlo.

Per creare un lavoro
  1. Nella Console di gestione AWS, accedere alla pagina di destinazione di AWS Glue.

  2. Nel riquadro di navigazione laterale, scegliere Jobs (Processi).

  3. Scegliere Editor di script Spark in Creazione di processo, quindi scegli Crea.

  4. Facoltativo: incollare il testo completo dello script nel riquadro Script. In alternativa, è possibile seguire il tutorial.

Fase 2: Importazione delle librerie AWS Glue

È necessario impostare lo script in modo che interagisca con il codice e la configurazione che sono stati definiti all'esterno dello script. Questa operazione viene svolta in background in AWS Glue Studio.

In questa fase, procedere secondo quanto descritto di seguito.

  • Importare e inizializzare un oggetto GlueContext. Questa è l'importazione più importante dal punto di vista della scrittura dello script Ciò espone i metodi standard per la definizione dei set di dati di origine e di destinazione, ossia il punto di partenza per qualsiasi script ETL. Per ulteriori informazioni sulla classe GlueContext, consultare la pagina Classe GlueContext.

  • Inizializza SparkContext e SparkSession. Questi parametri consentono di configurare il motore Spark disponibile all'interno del processo AWS Glue. Non sarà necessario utilizzarli direttamente all'interno degli script introduttivi di AWS Glue.

  • Richiamare getResolvedOptions per preparare gli argomenti del processo da utilizzare all'interno dello script. Per ulteriori informazioni sulla risoluzione dei parametri di processo, consultare Accesso ai parametri utilizzando getResolvedOptions.

  • Inizializzare un Job. L'oggetto Job imposta la configurazione e tiene traccia dello stato di varie funzionalità facoltative di AWS Glue. Lo script può essere eseguito senza un oggetto Job, tuttavia la procedura consigliata consiste nell'inizializzarlo in modo da non essere confusi da un'eventuale integrazione successiva di queste funzionalità.

    Una di queste è rappresentata dai segnalibri di processo, che puoi configurare facoltativamente in questo tutorial. Per informazioni sui segnalibri di processo, consulta la sezione Facoltativo: abilita i segnalibri di processo.

In questa procedura si scriverà il codice seguente. Questo codice è una parte dello script di esempio generato.

from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job args = getResolvedOptions(sys.argv, ["JOB_NAME"]) sc = SparkContext() glueContext = GlueContext(sc) spark = glueContext.spark_session job = Job(glueContext) job.init(args["JOB_NAME"], args)
Importazione delle librerie AWS Glue
  • Copia questa sezione del codice e incollala nell'editor Script.

    Nota

    La copia del codice potrebbe essere considerata una pratica di ingegneria non consigliata. In questo tutorial suggeriamo di assegnare un nome coerente alle variabili principali in tutti gli script ETL di AWS Glue.

Fase 3. Estrazione di dati da un'origine

In qualsiasi processo ETL, è innanzitutto necessario definire un set di dati di origine che si vuole modificare. Fornire queste informazioni nell'editor visivo di AWS Glue Studio creando un nodo Origine.

In questa fase, fornire al metodo create_dynamic_frame.from_catalog i parametri database e table_name per estrarre i dati da un'origine configurata nel Data Catalog AWS Glue.

Nella fase precedente è stato inizializzato un oggetto GlueContext Utilizzare questo oggetto per trovare i metodi usati per configurare le origini, ad esempio create_dynamic_frame.from_catalog.

In questa procedura si scriverà il codice seguente utilizzando create_dynamic_frame.from_catalog. Questo codice è una parte dello script di esempio generato.

S3bucket_node1 = glueContext.create_dynamic_frame.from_catalog( database="yyz-tickets", table_name="tickets", transformation_ctx="S3bucket_node1" )
Estrazione di dati da un'origine
  1. Esaminare la documentazione per trovare un metodo in GlueContext per estrarre dati da un'origine definita nel Catalogo dati AWS Glue. Questi metodi sono documentati in Classe GlueContext. Scegliere il metodo create_dynamic_frame.from_catalog. Richiamare questo metodo in glueContext.

  2. Esaminare la documentazione relativa a create_dynamic_frame.from_catalog. Questo metodo richiede i parametri database e table_name. Fornire i parametri necessari per create_dynamic_frame.from_catalog.

    Il Catalogo dati AWS Glue, che archivia le informazioni relative alla posizione e al formato dei dati di origine, è stato configurato nella sezione dei prerequisiti. Non è necessario fornire direttamente allo script tali informazioni.

  3. Facoltativo: fornisci al metodo il parametro transformation_ctx per supportare i segnalibri di processo. Per informazioni sui segnalibri di processo, consultare la sezione Facoltativo: abilita i segnalibri di processo.

Nota

Metodi comuni per l'estrazione dei dati

create_dynamic_frame_from_catalog viene utilizzato per connettersi alle tabelle nel Catalogo dati AWS Glue.

Se è necessario fornire direttamente al processo una configurazione che descriva la struttura e la posizione dell'origine, consulta il metodo create_dynamic_frame_from_options. È necessario fornire parametri più dettagliati per la descrizione dei dati rispetto a quando utilizzi create_dynamic_frame.from_catalog.

Consultare la documentazione supplementare su format_options e connection_parameters per identificare i parametri obbligatori. Per una spiegazione su come fornire allo script informazioni sul formato dei dati di origine, consultare la sezione Opzioni del formato dati per input e output in AWS Glue per Spark. Per una spiegazione su come fornire allo script informazioni sulla posizione dei dati di origine, consultare la sezione Tipi e opzioni di connessione per ETL in AWS Glue per Spark.

Se si sta leggendo le informazioni da un'origine di streaming, fornire al processo le informazioni di origine tramite i metodi create_data_frame_from_catalog o create_data_frame_from_options. Nota: questi metodi restituiscono DataFrames di Apache Spark.

Il codice generato effettua una chiamata a create_dynamic_frame.from_catalog, mentre la documentazione fa riferimento a create_dynamic_frame_from_catalog. Questi metodi richiamano in definitiva lo stesso codice e sono stati inclusi per consentire di scrivere un codice più pulito. Puoi verificarlo visualizzando il sorgente del nostro wrapper Python, disponibile all'indirizzo aws-glue-libs.

Fase 4. Trasformare i dati con AWS Glue

Dopo aver estratto i dati di origine in un processo ETL, è necessario specificare il modo in cui modificare i dati. Fornire queste informazioni creando un nodo Transform nell'editor visivo di AWS Glue Studio.

In questa fase, fornisci al metodo ApplyMapping una mappa dei nomi e dei tipi di campo attuali e desiderati per trasformare il DynamicFrame.

Eseguire le trasformazioni seguenti.

  • Rilasciare le quattro chiavi location e province.

  • Modificare il nome di officer in officer_name.

  • Modificare il tipo di ticket_number e set_fine_amount in float.

create_dynamic_frame.from_catalog fornisce un oggetto DynamicFrame. DynamicFrame rappresenta un set di dati in AWS Glue. Le trasformazioni di AWS Glue sono operazioni che modificano DynamicFrames.

Nota

Che cos'è una DynamicFrame?

Un DynamicFrame è un'astrazione che consente di collegare un set di dati con una descrizione dei nomi e dei tipi di voci presenti nei dati. In Apache Spark esiste un'astrazione simile chiamata DataFrame. Per una spiegazione dei DataFrames, consultare la Guida Spark SQL.

I DynamicFrames, consentono di descrivere gli schemi del set di dati in modo dinamico. Si consideri un set di dati con una colonna di prezzo, in cui alcune voci memorizzano il prezzo come una stringa e altre come un doppio. AWS Glue elabora uno schema in tempo reale, creando un record autodescrittivo per ogni riga.

I campi non coerenti (come il prezzo) sono rappresentati esplicitamente con un tipo (ChoiceType) nello schema del riquadro. Puoi affrontare il problema dei campi non coerenti eliminandoli con DropFields o risolvendoli con ResolveChoice. Queste trasformazioni che sono disponibili su DynamicFrame. Puoi quindi riscrivere i dati sul data lake con writeDynamicFrame.

È possibile richiamare la maggior parte di queste trasformazioni dai metodi della classe DynamicFrame, ottenendo così script più leggibili. Per ulteriori informazioni su DynamicFrame, consultare DynamicFrame classe.

In questa procedura si scriverà il codice seguente utilizzando ApplyMapping. Questo codice è una parte dello script di esempio generato.

ApplyMapping_node2 = ApplyMapping.apply( frame=S3bucket_node1, mappings=[ ("tag_number_masked", "string", "tag_number_masked", "string"), ("date_of_infraction", "string", "date_of_infraction", "string"), ("ticket_date", "string", "ticket_date", "string"), ("ticket_number", "decimal", "ticket_number", "float"), ("officer", "decimal", "officer_name", "decimal"), ("infraction_code", "decimal", "infraction_code", "decimal"), ("infraction_description", "string", "infraction_description", "string"), ("set_fine_amount", "decimal", "set_fine_amount", "float"), ("time_of_infraction", "decimal", "time_of_infraction", "decimal"), ], transformation_ctx="ApplyMapping_node2", )
Trasformare i dati con AWS Glue
  1. Esaminare la documentazione per identificare una trasformazione volta a modificare ed eliminare i campi. Per informazioni dettagliate, consultare Classe di base GlueTransform. Selezionare la trasformazione ApplyMapping. Per ulteriori informazioni su ApplyMapping, consultare Classe ApplyMapping. Richiamare apply nell'oggetto di trasformazione ApplyMapping.

    Nota

    Cos'è ApplyMapping?

    ApplyMapping prende un DynamicFrame e lo trasforma. Prende un elenco di tuple che rappresentano le trasformazioni sui campi, una "mappatura". I primi due elementi della tupla, ovvero un nome e un tipo di campo, vengono utilizzati per identificare un campo nel riquadro. Anche gli altri due parametri rappresentano un nome e un tipo di campo.

    ApplyMapping converte il campo di origine nel nome e nel tipo di destinazione in un nuovo DynamicFrame, che viene restituito. I campi non forniti verranno eliminati dal valore restituito.

    Invece di effettuare una chiamata ad apply, è possibile richiamare la stessa trasformazione con il metodo apply_mapping nell'oggetto DynamicFrame, creando così un codice più fluido e leggibile. Per ulteriori informazioni, consultare apply_mapping.

  2. Esaminare la documentazione relativa ad ApplyMapping per identificare i parametri obbligatori. Consultare Classe ApplyMapping. Si noterà che questo metodo richiede i parametri frame e mappings. Fornire i parametri necessari per ApplyMapping.

  3. Facoltativo: fornire transformation_ctx al metodo per supportare i segnalibri di processo. Per informazioni sui segnalibri di processo, consulta la sezione Facoltativo: abilita i segnalibri di processo.

Nota

Funzionalità di Apache Spark

Forniamo trasformazioni per semplificare i flussi di lavoro ETL all'interno del tuo processo. Si avrà inoltre accesso alle librerie che sono state create per scopi più generali e disponibili in un programma Spark nel processo. Per utilizzarle, è necessario eseguire la conversione tra DynamicFrame e DataFrame.

È possibile creare un DataFrame con toDF. Quindi, è possibile utilizzare i metodi disponibili su DataFrame per trasformare il set di dati. Per ulteriori informazioni su questi metodi, consultare DataFrame. È quindi possibile eseguire la conversione all'indietro con fromDF per utilizzare le operazioni AWS Glue per caricare il frame su una destinazione.

Fase 5. Caricare i dati in una destinazione

In genere, i dati trasformati vengono archiviati in una posizione diversa da quella di origine. Questa operazione viene eseguita creando un nodo target (destinazione) nell'editor visivo di AWS Glue Studio.

In questa fase si forniscono al metodo write_dynamic_frame.from_options i parametri connection_type, connection_options, format e format_options per caricare i dati in un bucket di destinazione di Amazon S3.

Nella fase 1 hai inizializzato un oggetto GlueContext. In questa sezione di AWS Glue troverai i metodi usati per configurare le destinazioni e le origini.

In questa procedura si scriverà il codice seguente utilizzando write_dynamic_frame.from_options. Questo codice è una parte dello script di esempio generato.

S3bucket_node3 = glueContext.write_dynamic_frame.from_options( frame=ApplyMapping_node2, connection_type="s3", format="glueparquet", connection_options={"path": "s3://amzn-s3-demo-bucket", "partitionKeys": []}, format_options={"compression": "gzip"}, transformation_ctx="S3bucket_node3", )
Caricare i dati in una destinazione
  1. Esaminare la documentazione per trovare un metodo adatto a caricare i dati in un bucket Amazon S3 di destinazione. Questi metodi sono documentati in Classe GlueContext. Scegliere il metodo write_dynamic_frame_from_options. Richiamare questo metodo in glueContext.

    Nota

    Metodi comuni per il caricamento dei dati

    write_dynamic_frame.from_options è il metodo più comunemente usato per caricare i dati. Supporta tutte le destinazioni disponibili in AWS Glue.

    Se si sta scrivendo su una destinazione JDBC definita in una connessione AWS Glue, usare il metodo write_dynamic_frame_from_jdbc_conf Le connessioni. AWS Glue memorizzano informazioni su come connettersi a un'origine dati. Ciò elimina la necessità di fornire tali informazioni in connection_options. Tuttavia, + necessario comunque utilizzare connection_options per fornire dbtable.

    write_dynamic_frame.from_catalog non è un metodo comune per caricare i dati. Questo metodo aggiorna il Catalogo dati AWS Glue senza aggiornare il set di dati sottostante e viene utilizzato in combinazione con altri processi che modificano il set di dati sottostante. Per ulteriori informazioni, consultare Aggiornamento dello schema e aggiunta di nuove partizioni nel catalogo dati usando processi ETL AWS Glue.

  2. Esaminare la documentazione relativa a write_dynamic_frame_from_options. Questo metodo richiede frame, connection_type, format, connection_options, format_options. Richiamare questo metodo in glueContext.

    1. Consultare la documentazione aggiuntiva relativa a format_options e format per identificare i parametri necessari. Per una spiegazione dei formati di dati, consultare la sezione Opzioni del formato dati per input e output in AWS Glue per Spark.

    2. Consultare la documentazione aggiuntiva relativa a connection_type e connection_options per identificare i parametri necessari. Per una spiegazione delle connessioni, consulta la sezione Tipi e opzioni di connessione per ETL in AWS Glue per Spark.

    3. Fornire i parametri necessari per write_dynamic_frame.from_options. Questo metodo ha una configurazione simile a create_dynamic_frame.from_options.

  3. Facoltativo: fornire transformation_ctx al metodo write_dynamic_frame.from_options per supportare i segnalibri di processo. Per informazioni sui segnalibri di processo, consultare la sezione Facoltativo: abilita i segnalibri di processo.

Fase 6. Commit dell'oggetto Job

Nella fase 1 è stato inizializzato un oggetto Job. Potrebbe essere necessario terminarne manualmente il ciclo di vita alla fine dello script nel caso alcune funzionalità facoltative lo richiedano per funzionare correttamente, ad esempio quando si utilizzano i segnalibri di processo. Questa operazione viene svolta in background in AWS Glue Studio.

In questa fase, effettuare una chiamata al metodo commit nell'oggetto Job.

In questa procedura si scriverà il codice seguente. Questo codice è una parte dello script di esempio generato.

job.commit()
Commit dell'oggetto Job
  1. Se non è stato già fatto, eseguire le fasi facoltative descritte nelle sezioni precedenti per includere transformation_ctx.

  2. Chiama commit.

Facoltativo: abilita i segnalibri di processo

In ogni fase precedente, ti è stato chiesto di impostare i parametri transformation_ctx. Questa operazione è correlata a una funzionalità denominata segnalibri di processo.

Con i segnalibri di processo risparmi tempo e denaro grazie a processi eseguiti su base ricorrente rispetto a set di dati in cui è possibile tracciare facilmente il lavoro precedente. I segnalibri di processo tengono traccia dell'avanzamento di una trasformazione AWS Glue su un set di dati rispetto alle esecuzioni precedenti. Tenendo traccia di dove le esecuzioni precedenti sono terminate, AWS Glue può limitare il lavoro alle righe non elaborate in precedenza. Per ulteriori informazioni sui segnalibri di processo, consultare Monitoraggio dei dati elaborati mediante segnalibri di processo.

Per abilitare i segnalibri di processo, aggiungere prima le informazioni transformation_ctx nelle funzioni fornite, come descritto negli esempi precedenti. Lo stato del segnalibro di processo viene mantenuto tra le esecuzioni. I parametri transformation_ctx sono chiavi utilizzate per accedere a tale stato. Da sole, queste istruzioni non servono a nulla. È necessario attivare la funzionalità nella configurazione del processo.

In questa procedura attivare i segnalibri di processo utilizzando la Console di gestione AWS.

Abilitazione dei segnalibri di processo
  1. Passare alla sezione Job details (Dettagli del processo) del processo corrispondente.

  2. Impostare Job bookmark (Segnalibro di processo) su Enable (Abilita).

Fase 7. Esecuzione del codice come processo

In questa fase, esegui il processo per verificare di aver completato correttamente questo tutorial. Questa operazione viene eseguita con un semplice clic di un pulsante, ad esempio nell'editor visivo di AWS Glue Studio.

Esecuzione del codice come processo
  1. Scegliere Untitled job (Processo senza titolo) sulla barra del titolo per modificare e impostare il nome del processo.

  2. Passare alla scheda Job details (Dettagli del lavoro). Assegna al processo un Ruolo IAM. È possibile usare quello creato tramite il modello CloudFormation nei prerequisiti per il tutorial di AWS Glue Studio. Se è stato completato quel tutorial, dovrebbe essere disponibile come AWS Glue StudioRole.

  3. Scegliere Save (Salva) per salvare lo script.

  4. Scegliere Run (Esegui) per eseguire il processo.

  5. Passare alla scheda Runs (Esecuzioni) per verificare il completamento del processo.

  6. Passare ad amzn-s3-demo-bucket, la destinazione di write_dynamic_frame.from_options. Verificare che l'output corrisponda alle proprie aspettative.

Per ulteriori informazioni sulla configurazione e la gestione dei processi, consultare la sezione Fornire i propri script personalizzati.

Ulteriori informazioni

Le librerie e i metodi di Apache Spark sono disponibili negli script di AWS Glue. Per comprendere quali operazioni è possibile eseguire con le librerie incluse, consulta la documentazione di Spark. Per ulteriori informazioni, consultare la sezione esempi del repository di orgine di Spark.

Per impostazione predefinita, AWS Glue 2.0+ include diverse librerie Python comuni. Esistono anche meccanismi per caricare le proprie dipendenze in un processo di AWS Glue in un ambiente Scala o Python. Per ulteriori informazioni sulle dipendenze Python, consultare Usare le librerie Python con Glue AWS.

Per ulteriori esempi di come utilizzare le funzionalità di AWS Glue in Python, consultare Esempi di codice Python in AWS Glue. I processi in Scala e Python presentano una condizione di parità di funzioni, per cui gli esempi relativi a Python consentono di comprendere l'esecuzione di un lavoro simile in Scala.