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
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
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
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
Per impacchettare più librerie Python per un PySpark lavoro, crea ambienti virtuali Python isolati.
-
Per creare l'ambiente virtuale Python, usa i seguenti comandi. L'esempio mostrato installa i pacchetti
scipyematplotlibin 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.
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 -
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/pythonNota che se non sovrascrivi il binario Python originale, la seconda configurazione nella sequenza di impostazioni precedente sarà.
--conf spark.executorEnv.PYSPARK_PYTHON=pythonPer ulteriori informazioni su come utilizzare gli ambienti virtuali Python per i PySpark lavori, consulta Using
Virtualenv. Per altri esempi su come inviare lavori Spark, consulta. Utilizzo delle configurazioni Spark quando si eseguono job EMR Serverless
Configurazione dei PySpark lavori per l'utilizzo delle librerie Python
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. NumPyPyArrow
Gli esempi seguenti mostrano come impacchettare ogni libreria Python per un PySpark lavoro.