[SPARK-3293] yarn's web show "SUCCEEDED" when the driver throw a exception in yarn-client

Our `saveAs*File` operations in Spark also avoid running if the output directly already exists, so there is that support in there. But for Spark I'd make this AM rerun configurable. The reason is that some Spark apps might be accessing weird data sources, serving a UI to outside users, or just doing fairly complicate logic inside that is hard to retry. These are things that MR jobs don't do as commonly.