Hace unos días tuve la fortuna (o desgracia) de implementar la lógica más compleja de todo el dominio. El resultado, como esperaba, una etl que fallaba por recursos constantemente. El problema:
Caused by: org.apache.spark.SparkException: Could not execute broadcast in 300 secs. You can increase the timeout for broadcasts via spark.sql.broadcastTimeout or disable broadcast join by setting spark.sql.autoBroadcastJoinThreshold to -1
Lo primero fue revisar el plan de ejecución para ver qué estaba sucediendo.
Había que identificar en qué parte estaba ocurriendo