

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 delle librerie Python con EMR Serverless
<a name="using-python-libraries"></a>

Quando esegui PySpark lavori su applicazioni Amazon EMR Serverless, impacchetta diverse librerie Python come dipendenze. Per fare ciò, usa le funzionalità native di Python, crea un ambiente virtuale o configura direttamente i tuoi PySpark lavori per utilizzare le librerie Python. Questa pagina illustra ogni approccio.

## Utilizzo delle funzionalità native di Python
<a name="using-native-python-features"></a>

Quando imposti la seguente configurazione, usala PySpark per caricare file Python (`.py`), pacchetti Python compressi () e file `.egg` Egg `.zip` () negli esecutori Spark.

```
--conf spark.submit.pyFiles=s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/<.py|.egg|.zip file>
```

Per maggiori dettagli su come utilizzare gli ambienti virtuali Python per i PySpark lavori, consulta [Uso delle funzionalità PySpark native](https://spark.apache.org/docs/latest/api/python/tutorial/python_packaging.html#using-pyspark-native-features).

Quando usi EMR Notebook, puoi rendere disponibile la dipendenza Python nel tuo Notebook eseguendo il seguente codice:

```
    %%configure -f
 {
    "conf": {
    "spark.submit.pyFiles":"s3:///amzn-s3-demo-bucket/EXAMPLE-PREFIX/<.py|.egg|.zip file>
                   }
 }
```

## Creazione di un ambiente virtuale Python
<a name="building-python-virtual-env"></a>

Per impacchettare più librerie Python per un PySpark lavoro, crea ambienti virtuali Python isolati.

1. Per creare l'ambiente virtuale Python, usa i seguenti comandi. L'esempio mostrato installa i pacchetti `scipy` e `matplotlib` in un pacchetto di ambiente virtuale e copia l'archivio in una posizione Amazon S3.
**Importante**  
È necessario eseguire i seguenti comandi in un ambiente Amazon Linux 2 simile con la stessa versione di Python utilizzata in EMR Serverless, ovvero Python 3.7.10 per Amazon EMR release 6.6.0. È possibile trovare un Dockerfile di esempio nel repository [EMR Serverless Samples.](https://github.com/aws-samples/emr-serverless-samples/tree/main/examples/pyspark/dependencies) GitHub 

   ```
   # initialize a python virtual environment
   python3 -m venv pyspark_venvsource
   source pyspark_venvsource/bin/activate
   
   # optionally, ensure pip is up-to-date
   pip3 install --upgrade pip
   
   # install the python packages
   pip3 install scipy
   pip3 install matplotlib
   
   # package the virtual environment into an archive
   pip3 install venv-pack
   venv-pack -f -o pyspark_venv.tar.gz
   
   # copy the archive to an S3 location
   aws s3 cp pyspark_venv.tar.gz s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/
   
   # optionally, remove the virtual environment directory
   rm -fr pyspark_venvsource
   ```

1. Invia il job Spark con le proprietà impostate per utilizzare l'ambiente virtuale Python. 

   ```
   --conf spark.archives=s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/pyspark_venv.tar.gz#environment 
   --conf spark.emr-serverless.driverEnv.PYSPARK_DRIVER_PYTHON=./environment/bin/python
   --conf spark.emr-serverless.driverEnv.PYSPARK_PYTHON=./environment/bin/python 
   --conf spark.executorEnv.PYSPARK_PYTHON=./environment/bin/python
   ```

   Nota che se non sovrascrivi il binario Python originale, la seconda configurazione nella sequenza di impostazioni precedente sarà. `--conf spark.executorEnv.PYSPARK_PYTHON=python`

   Per ulteriori informazioni su come utilizzare gli ambienti virtuali Python per i PySpark lavori, consulta [Using](https://spark.apache.org/docs/latest/api/python/tutorial/python_packaging.html#using-virtualenv) Virtualenv. Per altri esempi su come inviare lavori Spark, consulta. [Utilizzo delle configurazioni Spark quando si eseguono job EMR Serverless](jobs-spark.md)

## Configurazione dei PySpark lavori per l'utilizzo delle librerie Python
<a name="configuring-pyspark-jobs"></a>

[Con le versioni 6.12.0 e successive di Amazon EMR, puoi configurare direttamente i job EMR Serverless PySpark per utilizzare le più diffuse librerie Python di data science come panda e senza alcuna configurazione aggiuntiva. [NumPy[PyArrow](https://arrow.apache.org/docs/python/index.html)](https://numpy.org/doc/stable/user/index.html)](https://pandas.pydata.org/docs/user_guide/index.html)

Gli esempi seguenti mostrano come impacchettare ogni libreria Python per un PySpark lavoro.

------
#### [ NumPy ]

NumPy è una libreria Python per il calcolo scientifico che offre array e operazioni multidimensionali per matematica, ordinamento, simulazione casuale e statistiche di base. NumPyPer utilizzarla, esegui il seguente comando:

```
import numpy
```

------
#### [ pandas ]

pandas è una libreria Python su cui si basa. NumPy La libreria pandas fornisce ai data scientist strutture di dati e strumenti di analisi [DataFrame](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html)dei dati. Per usare pandas, esegui il seguente comando:

```
import pandas
```

------
#### [ PyArrow ]

PyArrow è una libreria Python che gestisce i dati colonnari in memoria per migliorare le prestazioni lavorative. PyArrow si basa sulla specifica di sviluppo multilingue di Apache Arrow, che è un modo standard per rappresentare e scambiare dati in un formato colonnare. Per utilizzarlo PyArrow, esegui il seguente comando:

```
import pyarrow
```

------