

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.

# Programmation de scripts Ray
<a name="aws-glue-programming-ray"></a>

**Important**  
AWS Glue for Ray ne sera plus ouvert aux nouveaux clients à compter du 30 avril 2026. Si vous souhaitez utiliser AWS Glue for Ray, inscrivez-vous avant cette date. Les clients existants peuvent continuer à utiliser le service normalement. Pour des fonctionnalités similaires à celles de AWS Glue for Ray, explorez Amazon EKS. Pour plus d'informations, consultez la section [AWS Glue relative à la fin du support de Ray](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).

AWS Glue facilite l'écriture et l'exécution de scripts Ray. Cette section décrit les fonctionnalités Ray prises en charge et disponibles dans AWS Glue for Ray. Vous programmez des scripts Ray dans Python.

Votre script personnalisé doit être compatible avec la version de Ray définie par le champ `Runtime` de votre définition de tâche. Pour plus d'informations relatives aux `Runtime` dans l'API Tâche, consultez [Tâches](aws-glue-api-jobs-job.md). Pour en savoir plus chaque environnement d'exécution, consultez [Environnements d'exécution Ray pris en charge](ray-jobs-section.md#author-job-ray-runtimes).

**Topics**
+ [Tutoriel : Écrire un script ETL AWS Glue pour Ray](edit-script-ray-intro-tutorial.md)
+ [Utiliser Ray Core et Ray Data AWS Glue pour Ray](edit-script-ray-scripting.md)
+ [Fournir des fichiers et des bibliothèques Python aux tâches Ray](edit-script-ray-env-dependencies.md)
+ [Connexion aux données dans les tâches Ray](edit-script-ray-connections-formats.md)

# Tutoriel : Écrire un script ETL AWS Glue pour Ray
<a name="edit-script-ray-intro-tutorial"></a>

**Important**  
AWS Glue for Ray ne sera plus ouvert aux nouveaux clients à compter du 30 avril 2026. Si vous souhaitez utiliser AWS Glue for Ray, inscrivez-vous avant cette date. Les clients existants peuvent continuer à utiliser le service normalement. Pour des fonctionnalités similaires à celles de AWS Glue for Ray, explorez Amazon EKS. Pour plus d'informations, consultez la section [AWS Glue relative à la fin du support de Ray](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).

Ray vous permet d'écrire et de dimensionner des tâches distribuées de manière native en Python. AWS Glue for Ray propose des environnements Ray sans serveur auxquels vous pouvez accéder à la fois à partir de tâches et de sessions interactives (les sessions interactives Ray sont en version préliminaire). Le système de AWS Glue tâches fournit un moyen cohérent de gérer et d'exécuter vos tâches, selon un calendrier, à partir d'un déclencheur ou depuis la console. AWS Glue 

La combinaison de ces AWS Glue outils crée une puissante chaîne d'outils que vous pouvez utiliser pour les charges de travail d'extraction, de transformation et de chargement (ETL), un cas d'utilisation populaire. AWS Glue Dans ce didacticiel, vous apprendrez les bases de la mise en place de cette solution.

Nous prenons également en charge l'utilisation AWS Glue de Spark pour vos charges de travail ETL. Pour un didacticiel sur l'écriture d'un script AWS Glue pour Spark, consultez[Tutoriel : Écrire un script AWS Glue for Spark](aws-glue-programming-intro-tutorial.md). Pour plus d'informations sur les moteurs disponibles, consultez [AWS Glue pour Spark et AWS Glue pour Ray](how-it-works-engines.md). Ray est capable de traiter de nombreux types de tâches dans les domaines de l'analyse, du machine learning (ML) et du développement d'applications. 

Dans ce didacticiel, vous allez extraire, transformer et charger un jeu de données CSV hébergé dans Amazon Simple Storage Service (Amazon S3). Vous allez commencer par le jeu de données d'enregistrement de voyages de l’agence New York City Taxi and Limousine Commission (TLC), qui est stocké dans un compartiment Amazon S3 public. Pour plus d'informations sur ce jeu de données, consultez le [Registre des données ouvertes sur AWS](https://registry.opendata.aws/nyc-tlc-trip-records-pds/). 

Vous transformerez vos données à l'aide de transformations prédéfinies disponibles dans la bibliothèque Ray Data. Ray Data est une bibliothèque de préparation de jeux de données conçue par Ray et incluse par défaut dans AWS Glue les environnements for Ray. Pour plus d'informations sur les bibliothèques incluses par défaut, consultez [Modules fournis avec les tâches Ray](edit-script-ray-env-dependencies.md#edit-script-ray-modules-provided). Vous écrirez ensuite vos données transformées dans un compartiment Amazon S3 que vous contrôlez.

**Conditions préalables** — Pour ce didacticiel, vous avez besoin d'un AWS compte avec accès à Amazon S3 AWS Glue et à Amazon S3. 

## Étape 1 : créer un compartiment dans Amazon S3 pour stocker vos données de sortie
<a name="edit-script-ray-intro-tutorial-s3"></a>

Vous aurez besoin d'un compartiment Amazon S3 que vous contrôlez pour servir de récepteur pour les données créées dans ce didacticiel. Vous pouvez créer ce compartiment en procédant comme suit.

**Note**  
Si vous souhaitez écrire vos données dans un compartiment existant que vous contrôlez, vous pouvez ignorer cette étape. Prenez note du *yourBucketName* nom du compartiment existant, à utiliser ultérieurement.

**Pour créer un compartiment pour la sortie de votre tâche Ray**
+ Créez un compartiment en suivant les étapes décrites dans la section [Créer un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) du *Guide de l'utilisateur Amazon S3*.
  + Lorsque vous choisissez un nom de bucket, prenez-en note*yourBucketName*, auquel vous vous référerez dans les étapes suivantes.
  + Pour les autres configurations, les paramètres suggérés fournis dans la console Amazon S3 devraient fonctionner correctement dans ce didacticiel.

  Par exemple, la boîte de dialogue de création de compartiments peut ressembler à ceci dans la console Amazon S3.  
![\[Une boîte de dialogue de la console Amazon S3 utilisée pour configurer un nouveau compartiment.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/ray-tutorial-create-bucket.jpg)

## Étape 2 : créer un rôle IAM pour votre politique pour votre tâche Ray
<a name="edit-script-ray-intro-tutorial-iam"></a>

Votre travail nécessitera un rôle Gestion des identités et des accès AWS (IAM) présentant les caractéristiques suivantes :
+ Autorisations accordées par la politique gérée `AWSGlueServiceRole`. Il s'agit des autorisations de base nécessaires pour exécuter une AWS Glue tâche.
+ Autorisations du niveau d'accès `Read` pour la ressource Amazon S3 `nyc-tlc/*`.
+ Autorisations du niveau d'accès `Write` pour la ressource Amazon S3 `yourBucketName/*`.
+ Une relation de confiance qui permet au principal `glue.amazonaws.com` d'assumer le rôle.

Vous pouvez créer ce rôle en procédant comme suit.

**Pour créer un rôle IAM pour votre job AWS Glue for Ray**
**Note**  
Vous pouvez créer un rôle IAM en suivant de nombreuses procédures différentes. Pour plus d'informations ou d'options sur le provisionnement des ressources IAM, consultez la [documentation Gestion des identités et des accès AWS](https://docs.aws.amazon.com/iam/index.html).

1. Créez une politique qui définit les autorisations Amazon S3 décrites précédemment en suivant les étapes décrites dans la section [Création de politiques avec l'éditeur visuel](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-visual-editor) du *Guide de l'utilisateur IAM*.
   + Lorsque vous sélectionnez un service, choisissez Amazon S3.
   + Lorsque vous sélectionnez des autorisations pour votre politique, associez les ensembles d'actions suivants pour les ressources suivantes (mentionnées précédemment) :
     + Autorisations du niveau d'accès de lecture pour la ressource Amazon S3 `nyc-tlc/*`.
     + Autorisations du niveau d'accès d'écriture pour la ressource Amazon S3 `yourBucketName/*`.
   + Lorsque vous sélectionnez le nom de la politique*YourPolicyName*, prenez-en note, auquel vous vous référerez ultérieurement.

1. Créez un rôle pour votre tâche AWS Glue for Ray en suivant les étapes décrites dans la section [Création d'un rôle pour un AWS service (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) dans le *guide de l'utilisateur IAM*.
   + Lorsque vous sélectionnez une entité AWS de service fiable, choisissez`Glue`. Cela renseignera automatiquement la relation de confiance nécessaire pour votre tâche.
   + Lorsque vous sélectionnez des politiques pour la politique d'autorisations, joignez les politiques suivantes :
     + `AWSGlueServiceRole`
     + *YourPolicyName*
   + Lorsque vous sélectionnez le nom du rôle, prenez-en note*YourRoleName*, auquel vous vous référerez dans les étapes ultérieures.

## Étape 3 : créer et exécuter une tâche AWS Glue pour Ray
<a name="edit-script-ray-intro-tutorial-author-job"></a>

Au cours de cette étape, vous créez une AWS Glue tâche à l'aide du AWS Management Console, vous lui fournissez un exemple de script et vous exécutez la tâche. Lorsque vous créez une tâche, elle crée un emplacement dans la console où vous pouvez stocker, configurer et modifier votre script Ray. Pour plus d'informations sur la création de tâches, consultez [Gestion des AWS Glue tâches dans la AWS console](author-job-glue.md#console-jobs).

Dans ce didacticiel, nous abordons le scénario ETL suivant : vous souhaitez lire les enregistrements de janvier 2022 du jeu de données New York City TLC Trip Record, ajouter une nouvelle colonne (`tip_rate`) au jeu de données en combinant les données dans des colonnes existantes, puis supprimer un certain nombre de colonnes qui ne sont pas pertinentes pour votre analyse actuelle, puis vous souhaitez y écrire les résultats. *yourBucketName* Le script Ray suivant exécute les étapes suivantes :

```
import ray
import pandas
from ray import data

ray.init('auto')

ds = ray.data.read_csv("s3://nyc-tlc/opendata_repo/opendata_webconvert/yellow/yellow_tripdata_2022-01.csv")

# Add the given new column to the dataset and show the sample record after adding a new column
ds = ds.add_column( "tip_rate", lambda df: df["tip_amount"] / df["total_amount"])

# Dropping few columns from the underlying Dataset 
ds = ds.drop_columns(["payment_type", "fare_amount", "extra", "tolls_amount", "improvement_surcharge"])

ds.write_parquet("s3://yourBucketName/ray/tutorial/output/")
```

**Pour créer et exécuter une tâche AWS Glue pour Ray**

1. Dans le AWS Management Console, accédez à la page de AWS Glue destination.

1. Dans le volet de navigation latéral, choisissez **Tâches ETL**.

1. Dans **Créer une tâche**, choisissez **Éditeur de script Ray**, puis choisissez **Créer**, comme dans l'illustration suivante.  
![\[Boîte de dialogue de la AWS Glue console utilisée pour créer une tâche Ray.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/edit-script-ray-create.png)

1. Collez le texte complet du script dans le volet **Script** et remplacez le texte existant.

1. Accédez aux **détails du Job** et définissez la propriété **IAM Role** sur*YourRoleName*.

1. Choisissez **Enregistrer**, puis **Exécuter**.

## Étape 4 : inspecter votre sortie
<a name="edit-script-ray-intro-tutorial-inspect"></a>

Après avoir exécuté votre AWS Glue tâche, vous devez vérifier que le résultat correspond aux attentes de ce scénario. Pour ce faire, suivez la procédure suivante.

**Pour valider si votre tâche Ray a été exécutée correctement**

1. Sur la page des détails de la tâche, accédez à **Exécutions**.

1. Au bout de quelques minutes, vous devriez voir une exécution dont le **statut d'exécution** est **Réussi**.

1. Accédez à la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)et inspectez-la*yourBucketName*. Vous devez voir des fichiers écrits dans votre compartiment de sortie.

1. Lisez les fichiers Parquet et vérifiez leur contenu. Vous pouvez le faire avec vos outils existants. Si vous n'avez pas de processus de validation des fichiers Parquet, vous pouvez le faire dans la AWS Glue console avec une session AWS Glue interactive, en utilisant Spark ou Ray (en version préliminaire).

   Dans une session interactive, vous avez accès aux bibliothèques Ray Data, Spark ou Pandas, qui sont fournies par défaut (en fonction du moteur que vous avez choisi). Pour vérifier le contenu de votre fichier, vous pouvez utiliser les méthodes d'inspection courantes disponibles dans ces bibliothèques (des méthodes comme `count`, `schema` et `show`). Pour plus d'informations sur les sessions interactives dans la console, consultez la section [Utilisation de blocs-notes avec AWS Glue Studio et AWS Glue](https://docs.aws.amazon.com/glue/latest/ug/notebooks-chapter.html). 

   Comme vous avez confirmé que les fichiers ont été écrits dans le compartiment, vous pouvez affirmer avec une relative certitude que si votre sortie présente des problèmes, ils ne sont pas liés à la configuration IAM. Configurez votre session *yourRoleName* pour avoir accès aux fichiers concernés.

Si vous n'obtenez pas les résultats escomptés, consultez le contenu de dépannage de ce guide pour identifier la source de l'erreur et y remédier. Vous trouverez le contenu de dépannage dans le chapitre [Résolution des problèmes de AWS Glue](troubleshooting-glue.md). Pour les erreurs spécifiques liées aux tâches Ray, consultez [Résolution AWS Glue des erreurs Ray liées aux journaux](troubleshooting-ray.md) au chapitre de dépannage. 

## Étapes suivantes
<a name="edit-script-ray-intro-tutorial-next"></a>

 Vous avez maintenant vu et exécuté un processus ETL utilisant AWS Glue for Ray de bout en bout. Vous pouvez utiliser les ressources suivantes pour comprendre AWS Glue les outils fournis par Ray pour transformer et interpréter vos données à grande échelle. 
+  Pour plus d'informations sur le modèle de tâche de Ray, consultez [Utiliser Ray Core et Ray Data AWS Glue pour Ray](edit-script-ray-scripting.md). Pour plus d'expérience dans l'utilisation des tâches Ray, suivez les exemples de la documentation Ray Core. Consultez [Ray Core: Ray Tutorials and Examples (2.4.0)](https://docs.ray.io/en/releases-2.4.0/ray-core/examples/overview.html) dans la documentation Ray. 
+  Pour obtenir des conseils sur les bibliothèques de gestion de données disponibles dans AWS Glue for Ray, consultez[Connexion aux données dans les tâches Ray](edit-script-ray-connections-formats.md). Pour en savoir plus sur l'utilisation de Ray Data pour transformer et écrire des jeux de données, suivez les exemples de la documentation Ray Data. Consultez [Ray Data: Examples (2.4.0)](https://docs.ray.io/en/releases-2.4.0/data/examples/index.html). 
+ Pour plus d'informations sur la configuration AWS Glue des tâches Ray, consultez[Travailler avec Ray Jobs dans AWS Glue](ray-jobs-section.md).
+ Pour plus d'informations sur l'écriture de scripts AWS Glue pour Ray, continuez à lire la documentation de cette section.

# Utiliser Ray Core et Ray Data AWS Glue pour Ray
<a name="edit-script-ray-scripting"></a>

**Important**  
AWS Glue for Ray ne sera plus ouvert aux nouveaux clients à compter du 30 avril 2026. Si vous souhaitez utiliser AWS Glue for Ray, inscrivez-vous avant cette date. Les clients existants peuvent continuer à utiliser le service normalement. Pour des fonctionnalités similaires à celles de AWS Glue for Ray, explorez Amazon EKS. Pour plus d'informations, consultez la section [AWS Glue relative à la fin du support de Ray](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).

Ray est un cadre permettant d'augmenter les scripts Python en répartissant le travail sur un cluster. Vous pouvez utiliser Ray comme solution à de nombreux types de problèmes. Ray fournit donc des bibliothèques pour optimiser certaines tâches. Dans AWS Glue, nous nous concentrons sur l'utilisation de Ray pour transformer de grands ensembles de données. AWS Glue propose un support pour Ray Data et certaines parties de Ray Core afin de faciliter cette tâche. 

## Qu'est-ce que Ray Core ?
<a name="edit-script-ray-scripting-core-what"></a>

La première étape de la création d'une application distribuée consiste à identifier et à définir le travail pouvant être effectué simultanément. Ray Core contient les parties de Ray que vous utilisez pour définir les tâches qui peuvent être effectuées simultanément. Ray fournit des informations de référence et de démarrage rapide que vous pouvez utiliser pour découvrir les outils qu'ils fournissent. Pour plus d'informations, consultez [Qu'est-ce que Ray Core ?](https://docs.ray.io/en/latest/ray-core/walkthrough.html) et [Ray Core Quick Start](https://docs.ray.io/en/latest/ray-overview/getting-started.html#ray-core-quick-start). Pour plus d'informations sur la définition efficace des tâches simultanées dans Ray, consultez [Tips for first-time users](https://docs.ray.io/en/latest/ray-core/tips-for-first-time.html). 

**Tâches et acteurs Ray**  
Dans AWS Glue la documentation de Ray, nous pouvons faire référence aux *tâches* et aux *acteurs*, qui sont des concepts fondamentaux de Ray.  
Ray utilise les fonctions et les classes Python comme éléments de base d'un système informatique distribué. Tout comme lorsque les fonctions et les variables Python deviennent des « méthodes » et des « attributs » lorsqu'elles sont utilisées dans une classe, les fonctions deviennent des « tâches » et les classes deviennent des « acteurs » lorsqu'elles sont utilisées dans Ray pour envoyer du code aux travailleurs. Vous pouvez identifier les fonctions et les classes susceptibles d'être utilisées par Ray grâce à l'annotation `@ray.remote`.  
Les tâches et les acteurs sont configurables, ont un cycle de vie et utilisent des ressources de calcul tout au long de leur cycle de vie. Le code qui génère des erreurs peut être retracé jusqu'à une tâche ou à un acteur lorsque vous trouvez la cause première des problèmes. Ces termes peuvent donc apparaître lorsque vous apprenez à configurer, surveiller ou déboguer AWS Glue des tâches Ray.   
Pour commencer à apprendre à utiliser efficacement les tâches et les acteurs pour créer une application distribuée, consultez [Key Concepts](https://docs.ray.io/en/latest/ray-core/key-concepts.html) dans la documentation Ray.

## Ray Core va AWS Glue remplacer Ray
<a name="edit-script-ray-scripting-core-glue"></a>

AWS Glue les environnements for Ray gèrent la formation et le dimensionnement des clusters, ainsi que la collecte et la visualisation des journaux. Parce que nous gérons ces problèmes, nous limitons par conséquent l'accès et le support APIs au cœur intégré qui serait utilisé pour résoudre ces problèmes dans un cluster open source.

Dans l'environnement d'exécution `Ray2.4` géré, nous ne prenons pas en charge :
+ [CLI Ray Core](https://docs.ray.io/en/releases-2.4.0/ray-core/api/cli.html)
+ [CLI Ray State](https://docs.ray.io/en/releases-2.4.0/ray-observability/api/state/cli.html)
+ Les méthodes de l'utilitaire métrique `ray.util.metrics` Prometheus :
  + [Compteur](https://docs.ray.io/en/releases-2.4.0/ray-core/api/doc/ray.util.metrics.Counter.html)
  + [Jauge](https://docs.ray.io/en/releases-2.4.0/ray-core/api/doc/ray.util.metrics.Gauge.html)
  + [Histogramme](https://docs.ray.io/en/releases-2.4.0/ray-core/api/doc/ray.util.metrics.Histogram.html)
+ Autres outils de débogage :
  + [ray.util.pdb.set\$1trace](https://docs.ray.io/en/releases-2.4.0/ray-core/api/doc/ray.util.pdb.set_trace.html)
  + [ray.util.inspect\$1serializability](https://docs.ray.io/en/releases-2.4.0/ray-core/api/doc/ray.util.inspect_serializability.html)
  + [ray.timeline](https://docs.ray.io/en/releases-2.4.0/ray-core/api/doc/ray.timeline.html)

## Qu'est-ce que Ray Data ?
<a name="edit-script-ray-scripting-data-what"></a>

Lorsque vous vous connectez à des sources de données et à des destinations, que vous manipulez des jeux de données et que vous initiez des transformations courantes, Ray Data est une méthodologie simple qui permet d'utiliser Ray pour résoudre les problèmes de transformation des jeux de données Ray. Pour plus d'informations sur l'utilisation de Ray Data, consultez [Ray Datasets: Distributed Data Preprocessing](https://docs.ray.io/en/releases-2.4.0/data/dataset.html). 

Vous pouvez utiliser Ray Data ou d'autres outils pour accéder à vos données. Pour plus d'informations sur l'accès à vos données dans Ray, consultez [Connexion aux données dans les tâches Ray](edit-script-ray-connections-formats.md).

## Ray Data à la AWS Glue place de Ray
<a name="edit-script-ray-scripting-data-glue"></a>

Ray Data est pris en charge et fourni par défaut dans l'environnement d'exécution géré `Ray2.4`. Pour plus d'informations sur les modules fournis, consultez [Modules fournis avec les tâches Ray](edit-script-ray-env-dependencies.md#edit-script-ray-modules-provided).

# Fournir des fichiers et des bibliothèques Python aux tâches Ray
<a name="edit-script-ray-env-dependencies"></a>

**Important**  
AWS Glue for Ray ne sera plus ouvert aux nouveaux clients à compter du 30 avril 2026. Si vous souhaitez utiliser AWS Glue for Ray, inscrivez-vous avant cette date. Les clients existants peuvent continuer à utiliser le service normalement. Pour des fonctionnalités similaires à celles de AWS Glue for Ray, explorez Amazon EKS. Pour plus d'informations, consultez la section [AWS Glue relative à la fin du support de Ray](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).

Cette section fournit les informations dont vous avez besoin pour utiliser les bibliothèques Python avec les tâches AWS Glue Ray. Vous pouvez utiliser certaines bibliothèques communes incluses par défaut dans toutes les tâches Ray. Vous pouvez également fournir vos propres bibliothèques Python à votre tâche Ray. 

## Modules fournis avec les tâches Ray
<a name="edit-script-ray-modules-provided"></a>

Vous pouvez exécuter des flux de travail d'intégration de données dans une tâche Ray à l'aide des packages fournis suivants. Ces packages sont disponibles par défaut dans les tâches Ray.

------
#### [ AWS Glue version 4.0 ]

Dans la AWS Glue version 4.0, l'environnement Ray (`Ray2.4`runtime) fournit les packages suivants :
+ boto3 == 1.26.133
+ ray == 2.4.0
+ pyarrow == 11.0.0
+ pandas == 1.5.3
+ numpy == 1.24.3
+ fsspec == 2023.4.0

Cette liste inclut tous les packages qui seront installés avec `ray[data] == 2.4.0`. Ray Data est prêt à l'emploi.

------

## Fournir des fichiers à votre tâche Ray
<a name="edit-script-ray-working-directory"></a>

Vous pouvez fournir des fichiers à votre tâche Ray avec le paramètre `--working-dir`. Fournissez à ce paramètre un chemin d'accès à un fichier .zip hébergé sur Amazon S3. Dans le fichier .zip, vos fichiers doivent être contenus dans un seul répertoire de premier niveau. Aucun autre fichier ne doit se trouver au niveau supérieur.

Vos fichiers sont distribués à chaque nœud Ray avant que votre script ne commence à s'exécuter. Réfléchissez à l'impact que cela peut avoir sur l'espace disque disponible pour chaque nœud Ray. L'espace disque disponible est déterminé par l' WorkerType ensemble défini dans la configuration de la tâche. Si vous souhaitez fournir vos données de tâche à grande échelle, ce mécanisme n'est pas la bonne solution. Pour plus d'informations sur la fourniture de données à votre tâche, consultez [Connexion aux données dans les tâches Ray](edit-script-ray-connections-formats.md). 

Vos fichiers seront accessibles comme si le répertoire avait été fourni à Ray via le paramètre `working_dir`. Par exemple, pour lire un fichier nommé `sample.txt` dans le répertoire de premier niveau de votre fichier .zip, vous pouvez appeler :

```
@ray.remote
def do_work():
    f = open("sample.txt", "r")
    print(f.read())
```

Pour plus d'informations sur `working_dir`, consultez [Ray documentation](https://docs.ray.io/en/latest/ray-core/handling-dependencies.html#remote-uris). Cette fonctionnalité se comporte de la même manière que les fonctionnalités natives de Ray.

## Modules Python supplémentaires pour les tâches Ray
<a name="edit-script-ray-python-libraries-additional"></a>

**Modules supplémentaires de PyPI**

Les tâches Ray utilisent Python Package Installer (pip3) pour installer les modules supplémentaires qui seront utilisés par un script Ray. Vous pouvez utiliser le paramètre `--pip-install` avec une liste de modules Python séparés par des virgules pour ajouter un nouveau module ou modifier la version d'un module existant. 

Par exemple, pour mettre à jour ou ajouter un nouveau module `scikit-learn`, utilisez la paire clé-valeur suivante : 

`"--pip-install", "scikit-learn==0.21.3"`

Si vous avez des modules ou des correctifs personnalisés, vous pouvez distribuer vos propres bibliothèques depuis Amazon S3 avec le paramètre `--s3-py-modules`. Avant de charger votre distribution, il peut être nécessaire de la reconditionner et de la recréer. Suivez les lignes directrices indiquées dans [Inclure du code Python dans les tâches Ray](#edit-script-ray-packaging).

**Distributions personnalisées depuis Amazon S3**

Les distributions personnalisées doivent respecter les directives d'empaquetage de Ray en ce qui concerne les dépendances. La section suivante explique comment créer ces distributions. Pour plus d'informations sur la façon dont Ray configure les dépendances, consultez [Environment Dependencies](https://docs.ray.io/en/latest/ray-core/handling-dependencies.html) (Dépendances d'environnement) dans la documentation Ray. 

Pour inclure un élément distribuable personnalisé après avoir évalué son contenu, chargez votre élément distribuable dans un compartiment disponible pour le rôle IAM de la tâche. Indiquez le chemin Amazon S3 vers une archive zip Python dans la configuration de vos paramètres. Si vous fournissez plusieurs éléments distribuables, séparez-les par des virgules. Par exemple :

`"--s3-py-modules", "s3://s3bucket/pythonPackage.zip"` 

**Limites**

Les tâches Ray ne prennent pas en charge la compilation de code natif dans l'environnement de la tâche. Cela peut vous limiter si vos dépendances Python dépendent de manière transitive du code compilé natif. Les tâches Ray peuvent exécuter les fichiers binaires fournis, mais ils doivent être compilés pour Linux sur ARM64. Vous pourrez ainsi peut-être utiliser le contenu des roues `aarch64``manylinux`. Vous pouvez fournir vos dépendances natives dans un format compilé en reconditionnant une roue selon les normes Ray. Cela implique généralement de supprimer des dossiers `dist-info` pour ne laisser qu'un seul dossier à la racine de l'archive. 

Vous ne pouvez pas mettre à niveau la version de `ray` ou de `ray[data]` en utilisant ce paramètre. Pour utiliser une nouvelle version de Ray, vous devrez modifier le champ d'exécution de votre tâche, une fois que nous aurons mis en place la prise en charge de cette version. Pour de plus amples informations sur les versions de Ray pris en charge, consultez [AWS Glue versions](release-notes.md#release-notes-versions).

## Inclure du code Python dans les tâches Ray
<a name="edit-script-ray-packaging"></a>

La Python Software Foundation propose des comportements standardisés pour l'empaquetage de fichiers Python destinés à être utilisés avec différents environnements d'exécution. Ray introduit des limites que vous devez connaître en matière de normes d'empaquetage. AWS Glue ne spécifie pas de normes d'empaquetage autres que celles spécifiées à Ray. Les instructions suivantes fournissent des conseils standards sur l'empaquetage de packages Python simples.

Empaquetez vos fichiers dans une archive `.zip`. Un répertoire doit se trouver à la racine de l'archive. **Il ne doit pas y avoir d'autres fichiers au niveau de la racine de l'archive, sous peine de provoquer un comportement inattendu.** Le répertoire racine est le package, et son nom est utilisé pour faire référence à votre code Python lorsque vous l'importez.

Si vous fournissez une distribution sous cette forme à une tâche Ray avec `--s3-py-modules`, vous pourrez importer du code Python depuis votre package dans votre script Ray.

Votre package peut fournir un seul module Python avec des fichiers Python, ou vous pouvez regrouper plusieurs modules. Lorsque vous reconditionnez des dépendances, telles que les bibliothèques de PyPI, **vérifiez la présence de fichiers cachés et de répertoires de métadonnées** dans ces packages. 

**Avertissement**  
 Certains comportements du système d'exploitation font qu'il est difficile de suivre correctement ces instructions d'empaquetage.   
OSX peut ajouter des fichiers cachés tels que `__MACOSX` à votre fichier zip au niveau supérieur.
Windows peut ajouter automatiquement vos fichiers à un dossier à l'intérieur du fichier zip, créant ainsi involontairement un dossier imbriqué.

Les procédures suivantes supposent que vous interagissez avec vos fichiers sous Amazon Linux 2 ou un système d'exploitation similaire qui fournit une distribution des utilitaires Info-ZIP `zip` et `zipinfo`. Nous vous recommandons d'utiliser ces outils pour éviter les comportements inattendus. 

Pour empaqueter des fichiers Python à utiliser dans Ray

1. Créez un répertoire temporaire avec le nom de votre package, puis confirmez que votre répertoire de travail est son répertoire parent. Vous pouvez le faire à l'aide des commandes suivantes :

   ```
   cd parent_directory
   mkdir temp_dir
   ```

1. Copiez vos fichiers dans le répertoire temporaire, puis confirmez la structure de votre répertoire. Le contenu de ce répertoire sera directement accessible en tant que module Python. Vous pouvez le faire à l'aide de la commande suivante :

   ```
   ls -AR temp_dir
   # my_file_1.py
   # my_file_2.py
   ```

1. Compressez votre dossier temporaire en utilisant zip. Vous pouvez le faire à l'aide des commandes suivantes :

   ```
   zip -r zip_file.zip temp_dir
   ```

1. Vérifiez que votre fichier est correctement empaqueté. `zip_file.zip` doit maintenant se trouver dans votre répertoire de travail. Vous pouvez l'inspecter avec la commande suivante :

   ```
   zipinfo -1 zip_file.zip
   # temp_dir/
   # temp_dir/my_file_1.py
   # temp_dir/my_file_2.py
   ```

Pour reconditionner un package Python à utiliser dans Ray.

1. Créez un répertoire temporaire avec le nom de votre package, puis confirmez que votre répertoire de travail est son répertoire parent. Vous pouvez le faire à l'aide des commandes suivantes :

   ```
   cd parent_directory
   mkdir temp_dir
   ```

1. Décompressez votre package et copiez-en le contenu dans votre répertoire temporaire. Supprimez les fichiers liés à votre ancienne norme d'emballage, en ne laissant que le contenu du module. Vérifiez que la structure de votre fichier semble correcte à l'aide de la commande suivante :

   ```
   ls -AR temp_dir
   # my_module
   # my_module/__init__.py
   # my_module/my_file_1.py
   # my_module/my_submodule/__init__.py
   # my_module/my_submodule/my_file_2.py
   # my_module/my_submodule/my_file_3.py
   ```

1. Compressez votre dossier temporaire en utilisant zip. Vous pouvez le faire à l'aide des commandes suivantes :

   ```
   zip -r zip_file.zip temp_dir
   ```

1. Vérifiez que votre fichier est correctement empaqueté. `zip_file.zip` doit maintenant se trouver dans votre répertoire de travail. Vous pouvez l'inspecter avec la commande suivante :

   ```
   zipinfo -1 zip_file.zip
   # temp_dir/my_module/
   # temp_dir/my_module/__init__.py
   # temp_dir/my_module/my_file_1.py
   # temp_dir/my_module/my_submodule/
   # temp_dir/my_module/my_submodule/__init__.py
   # temp_dir/my_module/my_submodule/my_file_2.py
   # temp_dir/my_module/my_submodule/my_file_3.py
   ```

# Connexion aux données dans les tâches Ray
<a name="edit-script-ray-connections-formats"></a>

**Important**  
AWS Glue for Ray ne sera plus ouvert aux nouveaux clients à compter du 30 avril 2026. Si vous souhaitez utiliser AWS Glue for Ray, inscrivez-vous avant cette date. Les clients existants peuvent continuer à utiliser le service normalement. Pour des fonctionnalités similaires à celles de AWS Glue for Ray, explorez Amazon EKS. Pour plus d'informations, consultez la section [AWS Glue relative à la fin du support de Ray](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).

AWS Glue Ray Jobs peut utiliser un large éventail de packages Python conçus pour vous permettre d'intégrer rapidement des données. Nous fournissons un ensemble minimal de dépendances afin de ne pas encombrer votre environnement. Pour plus d'informations sur ce qui est inclus par défaut, consultez [Modules fournis avec les tâches Ray](edit-script-ray-env-dependencies.md#edit-script-ray-modules-provided).

**Note**  
AWS Glue extract, transform, and load (ETL) fournit l' DynamicFrame abstraction nécessaire pour rationaliser les flux de travail ETL dans lesquels vous résolvez les différences de schéma entre les lignes de votre ensemble de données. AWS Glue L'ETL fournit des fonctionnalités supplémentaires : signets de tâches et regroupement de fichiers d'entrée. Actuellement, nous ne proposons pas de fonctionnalités correspondantes dans les tâches Ray.  
AWS Glue for Spark fournit un support direct pour la connexion à certains formats de données, sources et récepteurs. Dans Ray, le kit AWS SDK pour Pandas et les bibliothèques tierces actuelles répondent en grande partie à ce besoin. Vous devrez consulter ces bibliothèques pour connaître les fonctionnalités disponibles.

AWS Glue pour Ray, l'intégration avec Amazon VPC n'est pas disponible actuellement. Les ressources d'un Amazon VPC ne seront pas accessibles sans routage public. Pour plus d'informations sur l'utilisation AWS Glue avec Amazon VPC, consultez. [Configuration de points de terminaison d’un VPC d’interface (AWS PrivateLink) pour AWS Glue (AWS PrivateLink)](vpc-interface-endpoints.md) 

## Bibliothèques communes pour travailler avec des données dans Ray
<a name="edit-script-ray-etl-libraries"></a>

**Ray Data** : Ray Data fournit des méthodes pour gérer les formats de données, les sources et les récepteurs courants. Pour plus d'informations sur les formats et les sources pris en charge dans Ray Data, consultez [Input/Output](https://docs.ray.io/en/latest/data/api/input_output.html) dans la documentation Ray Data. Ray Data est une bibliothèque d'opinion, plutôt qu'une bibliothèque générale, destinée à manipuler des jeux de données. 

Ray fournit des conseils sur les cas d'utilisation où Ray Data pourrait être la meilleure solution pour votre tâche. Pour en savoir plus, consultez [Ray use cases](https://docs.ray.io/en/latest/ray-overview/use-cases.html) dans la documentation Ray. 

**AWS SDK pour pandas (awswrangler)** — Le AWS SDK pour pandas est un AWS produit qui fournit des solutions propres et testées pour lire et écrire vers des AWS services lorsque vos transformations gèrent des données avec des pandas. DataFrames Pour plus d'informations sur les formats et les sources pris en charge dans le AWS SDK pour pandas, consultez la [référence d'API](https://aws-sdk-pandas.readthedocs.io/en/stable/api.html) dans la documentation du AWS SDK pour pandas. 

Pour des exemples de lecture et d'écriture de données avec le AWS SDK pour pandas, voir [Quick Start](https://aws-sdk-pandas.readthedocs.io/en/stable/) dans la documentation du AWS SDK pour pandas. Le AWS SDK pour pandas ne fournit pas de transformations pour vos données. Il fournit uniquement une prise en charge pour la lecture et l'écriture à partir de sources. 

**Modin** : Modin est une bibliothèque Python qui implémente les opérations Pandas courantes de manière distribuable. Pour plus d'informations sur Modin, consultez [Modin documentation](https://modin.readthedocs.io/en/stable/). Modin lui-même ne fournit pas de prise en charge de la lecture et de l'écriture à partir de sources. Il fournit des implémentations distribuées de transformations courantes. Modin est supporté par le AWS SDK pour pandas. 

Lorsque vous exécutez Modin et le AWS SDK pour pandas ensemble dans un environnement Ray, vous pouvez effectuer des tâches ETL courantes avec des résultats performants. Pour plus d'informations sur l'utilisation de Modin avec le AWS SDK pour pandas, voir [At scale](https://aws-sdk-pandas.readthedocs.io/en/stable/scale.html) dans la documentation du AWS SDK pour pandas. 

**Autres cadres** : pour plus d’informations sur les cadres pris en charge par Ray, consultez [The Ray Ecosystem](https://docs.ray.io/en/latest/ray-overview/ray-libraries.html) dans la documentation Ray. Nous ne prenons pas en charge les autres frameworks AWS Glue de Ray.

## Connexion aux données via le catalogue de données
<a name="edit-script-ray-gludc"></a>

La gestion de vos données via le catalogue de données en conjonction avec les tâches Ray est prise en charge par le AWS SDK pour pandas. Pour plus d'informations, consultez [Glue Catalog](https://aws-sdk-pandas.readthedocs.io/en/3.0.0rc2/tutorials/005%20-%20Glue%20Catalog.html) sur le site AWS Web du SDK pour pandas.