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à.
Utilizzo della consapevolezza del contesto con Amazon Q Data Integration in AWS Glue
Ora puoi creare processi di elaborazione dati in modo più efficiente con la generazione di PySpark DataFrame codice e con riconoscimento del contesto basati su query in Amazon Q Data Integration. Ad esempio, puoi utilizzare questo prompt per generare PySpark codice: «crea un lavoro per caricare i dati di vendita dalla tabella Redshift 'analytics.salesorder' utilizzando la connessione 'erp_conn', filtra order_amount al di sotto di 50 dollari e salva su Amazon S3 in formato parquet».
Amazon Q genererà lo script in base alla configurazione del flusso di lavoro di integrazione dei dati di prompt e setup con i dettagli forniti dalla domanda, come configurazioni di connessione, dettagli dello schema, database/table nomi e specifiche delle colonne per le trasformazioni. Le informazioni sensibili, come le password delle opzioni di connessione, continuano a essere oscurate.
Se le informazioni richieste non vengono fornite nel prompt, Amazon Q inserirà dei segnaposto, di cui dovrà essere aggiornato il codice generato con i valori appropriati prima di eseguire il codice.
Di seguito sono riportati alcuni esempi su come utilizzare la consapevolezza del contesto.
Interazioni di esempio
Prompt: Create an AWS Glue spark job that reads a file s3://amzn-s3-demo-bucket-input-bucket-name/input-filename.csv and
saves it into the parquet file under directory s3://amzn-s3-demo-bucket-output-bucket-name/output-s3-prefix/
import sys from awsglue.transforms import * from pyspark.context import SparkContext from pyspark.sql import SparkSession sc = SparkContext.getOrCreate() spark = SparkSession.builder.getOrCreate() # Script generated for node S3DataSource S3DataSource_dsource1 = spark.read.format("csv").load( "s3://amzn-s3-demo-bucket-input-bucket-name/input-filename.csv" ) # Script generated for node S3DataSink S3DataSource_dsource1.write.format("parquet").mode("append").save( "s3://amzn-s3-demo-bucket-output-bucket-name/output-s3-prefix/" )
Prompt: write an ETL script to read from a Lakehouse table my-table in database my-database and write it to a RDS MySQL table
my-target-table
Per i campi in cui non sono state fornite informazioni (ad esempio, il connectionName obbligatorio è per il data sink MySQL e l'impostazione predefinita con un segnaposto <connection-name> nel codice generato), viene mantenuto un segnaposto per inserire le informazioni richieste prima di eseguire lo script.
Script generato:
import sys from awsglue.transforms import * from pyspark.context import SparkContext from pyspark.sql import SparkSession from connectivity.adapter import CatalogConnectionHelper sc = SparkContext.getOrCreate() spark = SparkSession.builder.getOrCreate() # Script generated for node S3DataSource S3DataSource_dsource1 = spark.read.format("parquet").load( "s3://amzn-lakehouse-demo-bucket/my-database/my-table" ) # Script generated for node ConnectionV2DataSink ConnectionV2DataSink_dsink1_additional_options = {"dbtable": "my-target-table"} CatalogConnectionHelper(spark).write( S3DataSource_dsource1, "mysql", "<connection-name>", ConnectionV2DataSink_dsink1_additional_options, )
L'esempio seguente dimostra come è possibile chiedere a AWS Glue di creare uno script AWS Glue per completare un flusso di lavoro ETL completo con il seguente prompt:. Create a AWS Glue ETL Script read from two AWS Glue Data Catalog tables venue and event in my database
glue_db_4fthqih3vvk1if, join the results on the field venueid, filter on venue state with condition as venuestate=='DC'
after joining the results and write output to an Amazon S3 S3 location s3://amz-s3-demo-bucket/output/ in CSV format
Il flusso di lavoro contiene la lettura da diverse fonti di dati (due tabelle AWS Glue Data Catalog) e un paio di trasformazioni dopo la lettura unendo il risultato di due letture, filtrando in base a determinate condizioni e scrivendo l'output trasformato in una destinazione Amazon S3 in formato CSV.
Il processo generato compilerà le informazioni dettagliate nell'origine dati, nella trasformazione e nell'operazione di sink con le informazioni corrispondenti estratte dalla domanda dell'utente, come di seguito.
import sys from awsglue.transforms import * from pyspark.context import SparkContext from pyspark.sql import SparkSession sc = SparkContext.getOrCreate() spark = SparkSession.builder.getOrCreate() # Script generated for node CatalogDataSource CatalogDataSource_dsource1 = spark.sql("select * from `glue_db_4fthqih3vvk1if`.`venue`") # Script generated for node CatalogDataSource CatalogDataSource_dsource2 = spark.sql("select * from `glue_db_4fthqih3vvk1if`.`event`") # Script generated for node JoinTransform JoinTransform_transform1 = CatalogDataSource_dsource1.join( CatalogDataSource_dsource2, (CatalogDataSource_dsource1["venueid"] == CatalogDataSource_dsource2["venueid"]), "inner", ) # Script generated for node FilterTransform FilterTransform_transform2 = JoinTransform_transform1.filter("venuestate=='DC'") # Script generated for node S3DataSink FilterTransform_transform2.write.format("csv").mode("append").save( "s3://amz-s3-demo-bucket/output//output/" )
Limitazioni
-
Restituzione del contesto:
-
La funzionalità di consapevolezza del contesto restituisce solo il contesto della precedente query dell'utente all'interno della stessa conversazione. Non conserva il contesto oltre la query immediatamente precedente.
-
-
Supporto per le configurazioni dei nodi:
-
Attualmente, la consapevolezza del contesto supporta solo un sottoinsieme di configurazioni richieste per vari nodi.
-
Il supporto per i campi opzionali è previsto nelle prossime versioni.
-
-
Disponibilità:
-
La consapevolezza del contesto e DataFrame il supporto sono disponibili nei notebook Q Chat e SageMaker Unified Studio. Tuttavia, queste funzionalità non sono ancora disponibili nei notebook AWS Glue Studio.
-