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 Serverless EMR
Quando esegui PySpark lavori su applicazioni Amazon EMR Serverless, puoi impacchettare varie librerie Python come dipendenze. Per fare ciò, puoi usare le funzionalità native di Python, creare un ambiente virtuale o configurare direttamente i tuoi PySpark lavori per utilizzare le librerie Python. Questa pagina descrive ogni approccio.
Utilizzo delle funzionalità native di Python
Quando imposti la seguente configurazione, puoi usarla 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 usare gli ambienti virtuali Python per i PySpark lavori, vedi Uso delle funzionalità PySpark native
Creazione di un ambiente virtuale Python
Per impacchettare più librerie Python per un PySpark lavoro, puoi creare ambienti virtuali Python isolati.
-
Per creare l'ambiente virtuale Python, usa i seguenti comandi. L'esempio mostrato installa i pacchetti
scipy
ematplotlib
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 release 6.6.0. EMR Puoi trovare un Dockerfile di esempio nel repository Serverless Samples. EMR
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=python
Per ulteriori informazioni su come utilizzare gli ambienti virtuali Python per i PySpark lavori, vedere Using
Virtualenv. Per altri esempi su come inviare lavori Spark, vedi. Utilizzo delle configurazioni Spark quando si EMR eseguono lavori Serverless
Configurazione dei PySpark lavori per l'utilizzo delle librerie Python
Con le EMR versioni 6.12.0 e successive di Amazon, puoi configurare direttamente i PySpark job EMR Serverless per utilizzare le librerie Python più diffuse per la scienza dei dati come panda e senza alcuna configurazione aggiuntiva
Gli esempi seguenti mostrano come impacchettare ogni libreria Python per un PySpark lavoro.