title: How does DAG make Apache Spark fault-tolerant?
body: <p>I am a beginner to Apache Spark. I was trying to understand the concept of DAG which Apache Spark creates and when we apply transformations one after another and which gets executed once an action is performed.</p>
  <p>What I could make out is that in the event of a job failure, DAG comes to the rescue. Since all the intermediate RDDs are stored in the memory, Spark knows till which step the job ran successfully and restart the job from that point only, instead of starting the job from the beginning.</p>
  <p>Now I have several questions here:</p>
  <ol>
  <li>Can DAG make Spark resilient to node failures ?</li>
  <li>Is it the driver node which maintains the DAG ?</li>
  <li>Can there be multiple DAGs for a single execution ?</li>
  </ol>