I used to think that spark application finishes when all jobs succeed. But, then I came across this parameter:
spark.driver.maxResultSize: Limit of total size of serialized results of all partitions for each Spark action (e.g. collect) in bytes. Should be at least 1M, or 0 for unlimited. Jobs will be aborted if the total size is above this limit. Having a high limit may cause out-of-memory errors in driver (depends on spark.driver.memory and memory overhead of objects in JVM). Setting a proper limit can protect the driver from out-of-memory errors.
What happens to the rest of the application when a job is aborted?
As per the answer here describing the parameter spark.driver.maxResultSize
,
The goal here is to protect your application from driver loss, nothing more.
How does aborting the job prevent driver loss?
Or, more broadly "What happens to the rest of the application when a job is aborted?"