

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.

# Utilisation d'images personnalisées avec EMR Serverless
<a name="using-custom-images"></a>

**Topics**
+ [Utiliser une version personnalisée de Python](#image-python)
+ [Utiliser une version personnalisée de Java](#image-java)
+ [Créez une image de science des données](#image-data-science)
+ [Traitement des données géospatiales avec Apache Sedona](#image-sedona)
+ [Informations de licence pour l'utilisation d'images personnalisées](concepts-licensing-images.md)

## Utiliser une version personnalisée de Python
<a name="image-python"></a>

Vous pouvez créer une image personnalisée pour utiliser une version différente de Python. Pour utiliser la version 3.10 de Python pour les tâches Spark, par exemple, exécutez la commande suivante :

```
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest

USER root

# install python 3
RUN yum install -y gcc openssl-devel bzip2-devel libffi-devel tar gzip wget make
RUN wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz && \
tar xzf Python-3.10.0.tgz && cd Python-3.10.0 && \
./configure --enable-optimizations && \
make altinstall

# EMRS runs the image as hadoop
USER hadoop:hadoop
```

Avant de soumettre le job Spark, définissez vos propriétés pour utiliser l'environnement virtuel Python, comme suit.

```
--conf spark.emr-serverless.driverEnv.PYSPARK_DRIVER_PYTHON=/usr/local/bin/python3.10
--conf spark.emr-serverless.driverEnv.PYSPARK_PYTHON=/usr/local/bin/python3.10
--conf spark.executorEnv.PYSPARK_PYTHON=/usr/local/bin/python3.10
```

## Utiliser une version personnalisée de Java
<a name="image-java"></a>

L'exemple suivant montre comment créer une image personnalisée pour utiliser Java 11 pour vos tâches Spark.

```
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest

USER root

# install JDK 11
RUN amazon-linux-extras install java-openjdk11

# EMRS runs the image as hadoop
USER hadoop:hadoop
```

Avant de soumettre la tâche Spark, définissez les propriétés de Spark pour utiliser Java 11, comme suit.

```
--conf spark.executorEnv.JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.amzn2.0.1.x86_64 
--conf spark.emr-serverless.driverEnv.JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-
```

## Créez une image de science des données
<a name="image-data-science"></a>

L'exemple suivant montre comment inclure des packages Python courants pour la science des données, tels que Pandas et NumPy.

```
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest

USER root

# python packages
RUN pip3 install boto3 pandas numpy
RUN pip3 install -U scikit-learn==0.23.2 scipy 
RUN pip3 install sk-dist
RUN pip3 install xgboost

# EMR Serverless runs the image as hadoop
USER hadoop:hadoop
```

## Traitement des données géospatiales avec Apache Sedona
<a name="image-sedona"></a>

L'exemple suivant montre comment créer une image pour inclure Apache Sedona pour le traitement géospatial.

```
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest

USER root

RUN yum install -y wget
RUN wget https://repo1.maven.org/maven2/org/apache/sedona/sedona-core-3.0_2.12/1.3.0-incubating/sedona-core-3.0_2.12-1.3.0-incubating.jar -P /usr/lib/spark/jars/
RUN pip3 install apache-sedona

# EMRS runs the image as hadoop
USER hadoop:hadoop
```