Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de bibliotecas de Python con EMR Serverless
Cuando ejecuta PySpark trabajos en aplicaciones Amazon EMR Serverless, puede empaquetar varias bibliotecas de Python como dependencias. Para ello, puede utilizar las funciones nativas de Python, crear un entorno virtual o configurar directamente sus PySpark trabajos para utilizar las bibliotecas de Python. En esta página se describe cada enfoque.
Uso de funciones nativas de Python
Si estableces la siguiente configuración, puedes utilizarla PySpark para cargar archivos de Python (.py
), paquetes de Python comprimidos (.zip
) y archivos Egg (.egg
) a los ejecutores de Spark.
--conf spark.submit.pyFiles=s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/<.py|.egg|.zip file>
Para obtener más información sobre cómo utilizar los entornos virtuales de Python para los PySpark trabajos, consulte Uso de funciones PySpark nativas
Creación de un entorno virtual de Python
Para empaquetar varias bibliotecas de Python para un PySpark trabajo, puede crear entornos virtuales de Python aislados.
-
Para crear el entorno virtual de Python, utilice los siguientes comandos. El ejemplo que se muestra instala los paquetes
scipy
matplotlib
en un paquete de entorno virtual y copia el archivo en una ubicación de Amazon S3.importante
Debe ejecutar los siguientes comandos en un entorno de Amazon Linux 2 similar con la misma versión de Python que utiliza en EMR Serverless, es decir, Python 3.7.10 para Amazon EMR versión 6.6.0. Puede encontrar un ejemplo de Dockerfile en el repositorio 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 -
Envía el trabajo de Spark con tus propiedades configuradas para usar el entorno virtual de 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/pythonTenga en cuenta que si no anula el binario de Python original, será
--conf spark.executorEnv.PYSPARK_PYTHON=python
la segunda configuración de la secuencia de ajustes anterior.Para obtener más información sobre cómo utilizar los entornos virtuales de Python para los PySpark trabajos, consulte Uso de Virtualenv
. Para ver más ejemplos de cómo enviar trabajos de Spark, consulta. Empleos en Spark
Configuración de PySpark trabajos para usar bibliotecas de Python
Con las EMR versiones 6.12.0 y posteriores de Amazon, puede configurar directamente los PySpark trabajos EMR sin servidor para que utilicen bibliotecas Python populares de ciencia de datos, como pandas NumPy
Los siguientes ejemplos muestran cómo empaquetar cada biblioteca de Python para un PySpark trabajo.