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.
Si vous avez besoin d'effectuer des transformations plus compliquées sur vos données ou si vous souhaitez ajouter des clés de propriété de données au jeu de données, vous pouvez ajouter une transformation Custom code (Code personnalisé) à votre diagramme de tâches. Le nœud de code personnalisé vous permet de saisir un script qui effectue la transformation.
Lorsque vous utilisez du code personnalisé, vous devez utiliser un éditeur de schéma pour indiquer les modifications apportées au résultat au travers du code personnalisé. Lorsque vous modifiez le schéma, vous pouvez exécuter les actions suivantes :
-
Ajouter ou supprimer des clés de propriété de données
-
Modifier le type de données des clés de propriété de données
-
Modifier le nom des clés de propriété de données
-
Restructurer une clé de propriété imbriquée
Vous devez utiliser une SelectFromCollectiontransformation pour en choisir une DynamicFrame
parmi le résultat de votre nœud de transformation personnalisé avant de pouvoir envoyer la sortie vers un emplacement cible.
Utilisez les tâches suivantes pour ajouter un nœud de transformation personnalisé à votre diagramme de tâches.
Ajout d'un nœud de transformation de code personnalisé au diagramme de tâche
Pour ajouter un nœud de transformation personnalisé à votre diagramme de tâche
-
(Facultatif) Ouvrez le panneau Ressources, puis choisissez Transformation personnalisée pour ajouter une nouvelle transformation à votre diagramme de tâches.
-
Sur la page Node properties (Propriétés de nœud) au cours de la tâche, saisissez un nom pour le nœud dans le diagramme de tâche. Si un parent de nœud n'est pas déjà sélectionné, ou si vous souhaitez plusieurs entrées pour la transformation personnalisée, choisissez un nœud dans la liste Node parents (Parents de nœud) à utiliser comme source pour la transformation.
Saisie du code pour le nœud de transformation personnalisé
Vous pouvez taper ou copier du code dans un champ de saisie. La tâche utilise ce code pour effectuer la transformation des données. Vous pouvez fournir un extrait de code Python ou Scala. Le code doit inclure un ou plusieurs DynamicFrames
en entrée et retourne une collection de DynamicFrames
.
Pour saisir le script d'un nœud de transformation personnalisé
-
Lorsque le nœud de transformation personnalisé est sélectionné dans le diagramme de tâche, choisissez l'onglet Transform (Transformation).
-
Dans le champ de saisie de texte sous l'en-tête Bloc de code, collez ou saisissez le code pour la transformation. Le code que vous utilisez doit correspondre au langage spécifié pour la tâche dans l'onglet Job details (Détails de la tâche).
Lorsque vous vous référez aux nœuds d'entrée de votre code, AWS Glue Studio nomme les nœuds
DynamicFrames
renvoyés par le diagramme de tâches de manière séquentielle en fonction de l'ordre de création. Utilisez l'une des méthodes de dénomination suivantes dans votre code :-
Génération de code classique – Utilisez des noms fonctionnels pour faire référence aux nœuds de votre diagramme de tâches.
-
Noeuds de source de données :
DataSource0
,DataSource1
,DataSource2
, etc. -
Transform nodes :
Transform0
,Transform1
,Transform2
, etc.
-
-
Génération d'un nouveau code – Utilisez le nom spécifié dans l'onglet Node properties (Propriétés du nœud) d'un nœud, complété par «
_node1
», «_node2
», etc. Par exempleS3bucket_node1
,ApplyMapping_node2
,S3bucket_node2
,MyCustomNodeName_node1
.
Pour en savoir plus sur le nouveau générateur de code, consultez Génération de code de script.
-
Les exemples suivants montrent le format du code à saisir dans la zone de code :
L'exemple suivant prend le premier DynamicFrame
reçu, le convertit en DataFrame
pour appliquer la méthode de filtre native (ne conservant que les enregistrements qui ont plus de 1000 votes), puis la convertit en un DynamicFrame
avant de le retourner.
def FilterHighVoteCounts (glueContext, dfc) -> DynamicFrameCollection:
df = dfc.select(list(dfc.keys())[0]).toDF()
df_filtered = df.filter(df["vote_count"] > 1000)
dyf_filtered = DynamicFrame.fromDF(df_filtered, glueContext, "filter_votes")
return(DynamicFrameCollection({"CustomTransform0": dyf_filtered}, glueContext))
Modifier le schéma d'un nœud de transformation personnalisé
Lorsque vous utilisez un nœud de transformation personnalisé, AWS Glue Studio ne peut pas déduire automatiquement les schémas de sortie créés par la transformation. Vous utilisez l'éditeur de schéma pour décrire les modifications de schéma implémentées par le code de transformation personnalisé.
Un nœud de code personnalisé peut avoir n'importe quel nombre de nœuds parents, chacun fournissant un DynamicFrame
comme source pour votre code personnalisé. Un nœud de code personnalisé renvoie un ensemble de DynamicFrames
. Chaque DynamicFrame
qui est utilisé comme entrée a un schéma associé. Vous devez ajouter un schéma qui décrit chaque DynamicFrame
retourné par le nœud de code personnalisé.
Note
Lorsque vous définissez votre propre schéma pour une transformation personnalisée, AWS Glue Studio n'hérite pas des schémas des nœuds précédents. Pour mettre à jour le schéma, sélectionnez le nœud de transformation personnalisée, puis choisissez l'onglet Aperçu des données. Une fois l'aperçu généré, choisissez « Use Preview Schema » (Utiliser le schéma d'aperçu). Le schéma sera ensuite remplacé par le schéma à l'aide de la prévisualisation des données.
Vous modifiez ici les schémas d'un nœud de transformation personnalisé
-
Lorsque le nœud de transformation personnalisé est sélectionné dans le diagramme de tâche, dans le volet de détails du nœud, choisissez l'onglet Output Schema (Schéma de sortie).
-
Choisissez Edit (Modifier) pour apporter des modifications au schéma.
Si vous avez des clés de propriété de données imbriquées, telles qu'un tableau ou un objet, vous pouvez choisir l'icône Expand-Rows (Développez les lignes) (
) en haut à droite de chaque volet de schéma pour développer la liste des clés de propriété de données enfant. Une fois que vous avez sélectionné cette icône, elle devient Collapse-Rows (Réduire les lignes) (
), que vous pouvez choisir de réduire la liste des clés de propriété enfants.
-
Modifiez le schéma à l'aide des actions suivantes, dans la section à droite de la page :
-
Pour renommer une clé de propriété, placez le curseur dans la zone de texte Key (Clé) de la clé de propriété, puis saisissez le nouveau nom.
-
Pour modifier le type de données d'une clé de propriété, utilisez la liste pour choisir le nouveau type de données pour la clé de propriété.
-
Pour ajouter une nouvelle colonne de niveau supérieur au schéma, choisissez l'icône Overflow (Surcharger) (
) à droite du bouton Cancel (Annuler), puis choisissez Add root key (Ajouter une clé racine).
-
Pour ajouter une clé de propriété enfant au schéma, choisissez l'icône Add-Key (Ajouter une clé)
associée à la clé parent. Saisissez un nom pour la clé enfant et choisissez le type de données.
-
Pour supprimer une clé de propriété du schéma, choisissez l'icône Remove (Supprimer) (
) à l'extrême droite du nom de la clé.
-
-
Si votre code de transformation personnalisé utilise plusieurs
DynamicFrames
, vous pouvez ajouter d'autres schémas de sortie.-
Pour ajouter un nouveau schéma vide, choisissez Overflow (Surcharger) (
), puis choisissez Add output schema (Ajouter un schéma de sortie).
-
Pour copier un schéma existant dans un nouveau schéma en sortie, assurez-vous que le schéma à copier est affiché dans le sélecteur de schéma. Choisissez l'icône Overflow (Surcharger) (
), puis choisissez Duplicate (Dupliquer).
Si vous souhaitez supprimer un schéma en sortie, assurez-vous que le schéma que vous souhaitez copier est affiché dans le sélecteur de schéma. Choisissez l'icône Overflow (Surcharger) (
), puis choisissez Delete (Supprimer).
-
-
Ajoutez de nouvelles clés racine au nouveau schéma ou modifiez les clés dupliquées.
-
Lorsque vous modifiez les schémas en sortie, choisissez le bouton Apply (Appliquer) pour sauvegarder vos modifications et quitter l'éditeur de schéma.
Si vous ne souhaitez pas enregistrer vos modifications, choisissez le bouton Cancel (Annuler).
Configurer la sortie de transformation personnalisée
Une transformation de code personnalisée renvoie une collection de DynamicFrames
, même s'il n'y a qu'un seul DynamicFrame
dans le jeu de résultats.
Pour traiter la sortie à partir d'un nœud de transformation personnalisé
-
Ajoutez un nœud de SelectFromCollectiontransformation dont le nœud de transformation personnalisé est le nœud parent. Mettez à jour cette transformation pour indiquer le jeu de données que vous souhaitez utiliser. Pour plus d'informations, consultez Utilisation SelectFromCollection pour choisir le jeu de données à conserver.
-
Ajoutez des SelectFromCollectiontransformations supplémentaires au diagramme de tâches si vous souhaitez utiliser des transformations supplémentaires
DynamicFrames
produites par le nœud de transformation personnalisé.Considérez un scénario dans lequel vous ajoutez un nœud de transformation personnalisé pour diviser un jeu de données de vol en plusieurs jeux de données, mais dupliquez certaines des clés de propriété d'identification dans chaque schéma en sortie, telles que la date de vol ou le numéro de vol. Vous ajoutez un nœud de SelectFromCollectiontransformation pour chaque schéma de sortie, le nœud de transformation personnalisé étant son parent.
-
(Facultatif) Vous pouvez ensuite utiliser chaque nœud de SelectFromCollectiontransformation comme entrée pour les autres nœuds de la tâche ou comme parent pour un nœud cible de données.