Una tarea de Spark
Si ve una fase de larga duración con una sola tarea, es probable que sea una señal de un problema. Mientras se ejecuta esta tarea, solo se utiliza una CPU y el resto del clúster puede estar inactivo. Esto sucede con más frecuencia en las situaciones siguientes:
- UDF costosas en pocos datos
- Función de ventana sin instrucción
PARTITION BY
- Lectura de un tipo de archivo que no se puede dividir. Esto significa que el archivo no se puede leer en varias partes, por lo que termina como una tarea grande. Gzip es un ejemplo de un tipo de archivo sin dividir.
- Establecimiento de la opción
multiLine
al leer un archivo JSON o CSV - Inferencia de esquema de un archivo grande
- Uso de repartition(1) o coalesce(1)