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 sin servidor
Cuando ejecute trabajos de PySpark en aplicaciones Amazon EMR sin servidor, empaquete varias bibliotecas de Python como dependencias. Para ello, use características nativas de Python, cree un entorno virtual o configure directamente sus trabajos de PySpark para que usen bibliotecas de Python. Esta página abarca cada enfoque.
Uso de funciones nativas de Python
Si establece la siguiente configuración, use 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 usar los entornos virtuales de Python para los trabajos de PySpark, consulte Using PySpark Native Features
Al usar EMR Notebook, puede hacer que la dependencia de Python esté disponible en su cuaderno mediante la ejecución del siguiente código:
%%configure -f { "conf": { "spark.submit.pyFiles":"s3:///amzn-s3-demo-bucket/EXAMPLE-PREFIX/<.py|.egg|.zip file>} }
Creación de un entorno virtual de Python
Para empaquetar varias bibliotecas de Python para un trabajo de PySpark, cree un entorno virtual de Python aislado.
-
Para crear el entorno virtual de Python, ejecute los siguientes comandos. El ejemplo que se muestra instala los paquetes
scipyymatplotliben 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 sin servidor, es decir, Python 3.7.10 para Amazon EMR versión 6.6.0. Puede encontrar un ejemplo de Dockerfile en el repositorio GitHub de Ejemplos de EMR sin servidor
. # 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íe el trabajo de Spark con sus 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=pythonla segunda configuración de la secuencia de ajustes anterior.Para obtener más información sobre cómo usar los entornos virtuales de Python para los trabajos de PySpark, consulte Using Virtualenv
. Para ver más ejemplos de cómo enviar trabajos de Spark, consulte Uso de configuraciones de Spark al ejecutar trabajos de EMR sin servidor.
Configuración de trabajos de PySpark para usar bibliotecas de Python
Con las versiones 6.12.0 y posteriores de Amazon EMR, puede configurar directamente los trabajos de PySpark sin servidor de EMR para utilizar bibliotecas Python populares de ciencia de datos, como pandas
En los siguientes ejemplos, se muestra cómo empaquetar cada biblioteca de Python para un trabajo de PySpark.