Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Vous pouvez désormais créer des tâches de traitement de données de manière plus efficace grâce à la prise en compte du contexte basée sur les requêtes et à la génération de PySpark DataFrame code dans Amazon Q Data Integration. Par exemple, vous pouvez utiliser cette invite pour générer PySpark du code : « créez une tâche pour charger les données de vente à partir de la table Redshift 'analytics.salesorder' en utilisant la connexion 'erp_conn', filtrez order_amount en dessous de 50 dollars et enregistrez sur Amazon S3 au format parquet ».
Amazon Q générera le script en fonction de votre demande et configurera le flux de travail d'intégration des données avec les détails fournis dans votre question, tels que les configurations de connexion, les détails du schéma, les noms des bases de données/tables et les spécifications des colonnes pour les transformations. Les informations sensibles, telles que les mots de passe des options de connexion, continuent d'être supprimées.
Si les informations requises ne sont pas fournies à votre demande, Amazon Q placera des espaces réservés, dans lesquels vous devrez mettre à jour le code généré avec les valeurs appropriées avant d'exécuter le code.
Vous trouverez ci-dessous des exemples d'utilisation de la connaissance du contexte.
Exemple : interactions
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
Pour les champs où vous n'avez pas fourni d'informations (par exemple, le nom de connexion requis est pour le récepteur de données MySQL et contient par défaut un espace réservé <connection-name>dans le code généré), un espace réservé est conservé pour que vous puissiez renseigner les informations requises avant d'exécuter le script.
Script généré :
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'exemple suivant montre comment vous pouvez demander à AWS Glue de créer un script AWS Glue pour terminer un flux de travail ETL complet avec l'invite suivante : 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
Le flux de travail comprend la lecture à partir de différentes sources de données (deux tables AWS Glue Data Catalog) et quelques transformations après la lecture en joignant le résultat de deux lectures, en filtrant en fonction de certaines conditions et en écrivant la sortie transformée dans une destination Amazon S3 au format CSV.
La tâche générée renseignera les informations détaillées sur la source de données, les opérations de transformation et de réception avec les informations correspondantes extraites de la question de l'utilisateur, comme ci-dessous.
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/"
)

Limites
-
Report du contexte :
-
La fonction de reconnaissance du contexte ne reporte que le contexte de la requête précédente de l'utilisateur au sein de la même conversation. Il ne conserve pas le contexte au-delà de la requête immédiatement précédente.
-
-
Support pour les configurations de nœuds :
-
À l'heure actuelle, la reconnaissance du contexte ne prend en charge qu'un sous-ensemble des configurations requises pour les différents nœuds.
-
Support pour les champs facultatifs est prévu dans les prochaines versions.
-
-
Disponibilité :
-
La connaissance du contexte et le DataFrame support sont disponibles dans les blocs-notes Q Chat et SageMaker Unified Studio. Toutefois, ces fonctionnalités ne sont pas encore disponibles dans les blocs-notes AWS Glue Studio.
-