

{"id":5941,"date":"2018-01-17T09:10:43","date_gmt":"2018-01-17T03:40:43","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=5941"},"modified":"2019-10-22T15:17:59","modified_gmt":"2019-10-22T09:47:59","slug":"spark-stage","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/spark-stage\/","title":{"rendered":"Spark Stage- An Introduction to Physical Execution plan"},"content":{"rendered":"<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:1357,&quot;href&quot;:&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Apache_Spark&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20250922221612\\\/https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Apache_Spark&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-09 05:27:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-12 10:08:16&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-15 10:54:44&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-18 15:58:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-21 22:36:30&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-25 05:31:45&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-28 12:45:42&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-31 14:24:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-03 17:46:17&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-07 06:00:10&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-10 18:44:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-14 03:23:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-17 07:55:39&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-20 08:53:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-23 13:06:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-26 19:31:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-30 03:59:32&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-02 04:29:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-05 06:45:01&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-08 15:14:08&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-11 17:11:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-14 17:21:25&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-17 19:54:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-21 15:31:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-24 16:57:05&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-02-27 17:43:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-02 18:00:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-06 08:59:01&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-09 10:45:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-12 12:05:44&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-15 13:52:04&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-18 16:22:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-22 02:26:17&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-25 06:42:29&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-28 13:17:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-31 19:34:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 21:06:08&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-07 13:23:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-10 15:12:24&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-14 01:00:09&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-17 15:03:23&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-04-20 17:12:48&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-04-23 18:14:30&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-04-26 23:59:57&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-30 03:29:22&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-03 03:48:13&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-06 06:11:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-09 10:25:28&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-12 12:20:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-15 15:48:18&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-19 00:06:09&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-22 12:24:50&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-25 12:59:28&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-28 18:04:56&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-01 07:34:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-04 09:52:56&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-07 13:28:25&quot;,&quot;http_code&quot;:404}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-07 13:28:25&quot;,&quot;http_code&quot;:404},&quot;process&quot;:&quot;done&quot;}]'><\/div>\n<p>A stage is nothing but a step in a physical execution plan. It is basically a physical unit of the execution plan. This blog aims at explaining the whole concept of Apache Spark Stage. It covers the types of\u00a0Stages in Spark which are of two types:\u00a0ShuffleMapstage in Spark and ResultStage in spark. Also, it will cover the details of the\u00a0method to create Spark Stage. However, before exploring this blog, you should\u00a0have a basic understanding of <strong><a href=\"https:\/\/data-flair.training\/blogs\/apache-spark-rdd-tutorial\/\">Apache Spark\u00a0<\/a><\/strong><span id=\"selectionBoundary_1556868067692_8831177338126874\" class=\"rangySelectionBoundary\" style=\"line-height: 0;display: none\"><\/span>so that\u00a0you can relate with the concepts well.<\/p>\n<h2><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stage-An-Introduction-to-Physical-Execution-plan.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-55673 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stage-An-Introduction-to-Physical-Execution-plan.png\" alt=\"Spark Stage- An Introduction to Physical Execution plan\" width=\"802\" height=\"420\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stage-An-Introduction-to-Physical-Execution-plan.png 802w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stage-An-Introduction-to-Physical-Execution-plan-150x79.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stage-An-Introduction-to-Physical-Execution-plan-300x157.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stage-An-Introduction-to-Physical-Execution-plan-768x402.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stage-An-Introduction-to-Physical-Execution-plan-520x272.png 520w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a>What are Stages in Spark?<\/h2>\n<p><span style=\"font-weight: 400\"><em>A stage is nothing but a step in a physical execution plan<\/em>. It is a physical unit of the execution plan. It is a set of parallel tasks i.e. one task per partition. In other words,\u00a0each job which gets divided into smaller sets of tasks is a stage. Although, it totally depends on each other. However, we can say it is as same as the map and reduce stages in <strong><a href=\"https:\/\/data-flair.training\/blogs\/hadoop-mapreduce-tutorial\/\">MapReduce<\/a>.<\/strong><\/span><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Submitting-a-Job-in-Spark.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-55674 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Submitting-a-Job-in-Spark.jpg\" alt=\"Task &amp; Submitting a job in Spark Stage\" width=\"802\" height=\"420\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Submitting-a-Job-in-Spark.jpg 802w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Submitting-a-Job-in-Spark-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Submitting-a-Job-in-Spark-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Submitting-a-Job-in-Spark-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Submitting-a-Job-in-Spark-520x272.jpg 520w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a><\/p>\n<p>We can associate the spark stage with many other dependent parent stages. However,\u00a0it can only work on the partitions of a single <a href=\"https:\/\/data-flair.training\/blogs\/apache-spark-rdd-tutorial\/\"><strong>RDD<\/strong><\/a>.\u00a0Also, with the boundary of a stage in spark marked by shuffle dependencies.<\/p>\n<p>Ultimately,\u00a0 submission of Spark stage triggers the execution of a series of dependent parent stages. Although, there is a first Job Id present at every stage that is the id of the job which submits stage in Spark.<a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-55675 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages.jpg\" alt=\"Submitting a job triggers execution of the stage and its parent Spark stages\" width=\"802\" height=\"420\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages.jpg 802w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-520x272.jpg 520w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a><\/p>\n<h2>Types of Spark Stages<\/h2>\n<p><span style=\"font-weight: 400\">Stages in Apache spark have two categories<\/span><\/p>\n<p><span style=\"font-weight: 400\">1.\u00a0ShuffleMapStage in Spark<\/span><\/p>\n<p>2. ResultStage\u00a0in Spark<\/p>\n<p>Let&#8217;s discuss each type of Spark Stages\u00a0in detail:<\/p>\n<h3>1. ShuffleMapStage in Spark<\/h3>\n<p><span style=\"font-weight: 400\">ShuffleMapStage\u00a0is considered as an intermediate Spark stage in the physical execution of <a href=\"https:\/\/data-flair.training\/blogs\/dag-in-apache-spark\/\"><strong>DAG<\/strong><\/a>. It produces data for another stage(s).\u00a0In a job in Adaptive Query Planning \/ Adaptive Scheduling, we can consider it as the final stage in Apache Spark and it is possible to submit it independently as a Spark job for Adaptive Query Planning.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In addition, \u00a0at the time of execution, a Spark ShuffleMapStage saves map output files. We can fetch those files by reduce tasks. When all map outputs are available, the ShuffleMapStage\u00a0is considered ready.<strong> Although, output locations can <\/strong>be missing<strong> sometimes. Two things we can infer from this scenario.<\/strong> <strong>Those are partitions might not <\/strong>be calculated<strong> or <\/strong>are lost<strong>.<\/strong> However, we can track how many shuffle map outputs available. To track this, stages uses outputLocs &amp;_numAvailableOutputs internal registries.<\/span><\/p>\n<p><span style=\"font-weight: 400\">We consider ShuffleMapStage in <a href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_Spark\">Spark<\/a> as an input for other following Spark stages in the DAG of stages. Basically, that is shuffle dependency\u2019s map side.\u00a0It is possible that there are various\u00a0multiple pipeline operations in ShuffleMapStage like map and filter, before shuffle operation. We can share a single ShuffleMapStage among different jobs.<\/span><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/DAG-Scheduler.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-55676 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/DAG-Scheduler.jpg\" alt=\"DAGScheduler &amp; Spark stages for a job\" width=\"802\" height=\"420\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/DAG-Scheduler.jpg 802w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/DAG-Scheduler-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/DAG-Scheduler-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/DAG-Scheduler-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/DAG-Scheduler-520x272.jpg 520w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a><\/p>\n<h3>2. ResultStage\u00a0in Spark<\/h3>\n<p><span style=\"font-weight: 400\">By running a function on a spark RDD Stage that executes a <a href=\"https:\/\/data-flair.training\/blogs\/spark-rdd-operations-transformations-actions\/\"><strong>Spark action<\/strong><\/a> in a user program is a ResultStage. It\u00a0is considered as a final stage in spark. ResultStage implies as a final stage in a job that applies a function on one or many partitions of the target RDD in Spark. It also helps for computation of the result of an action.<\/span><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Graph-of-Spark-Stages.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-55678 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Graph-of-Spark-Stages.jpg\" alt=\"Graph of Spark Stage with DAGScheduler\" width=\"802\" height=\"420\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Graph-of-Spark-Stages.jpg 802w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Graph-of-Spark-Stages-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Graph-of-Spark-Stages-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Graph-of-Spark-Stages-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Graph-of-Spark-Stages-520x272.jpg 520w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a><\/p>\n<p><strong>Let&#8217;s discuss: <a href=\"https:\/\/data-flair.training\/blogs\/apache-spark-use-cases-in-real-time\/\">Spark real-time use cases<\/a><\/strong><\/p>\n<h2><span style=\"font-family: 'Georgia','serif';color: #333333\">Getting StageInfo For Most Recent Attempt<\/span><\/h2>\n<p>There is one more method, latestInfo method which\u00a0helps to know the most recent StageInfo.`<br \/>\n<strong>latestInfo: StageInfo<\/strong><\/p>\n<h2><span style=\"font-family: 'Georgia','serif';color: #333333\">Stage Contract<\/span><\/h2>\n<p><span style=\"font-weight: 400\">It is a private[scheduler] abstract contract.<\/span><br \/>\n<b>abstract class Stage {<\/b><br \/>\n<b> def findMissingPartitions(): Seq[Int]<\/b><br \/>\n<b>}<\/b><\/p>\n<h2>Method To Create New Apache Spark Stage<\/h2>\n<p><span style=\"font-weight: 400\">There is a basic method by which we can create a new stage in Spark. The method is:<\/span><br \/>\n<b><\/b><\/p>\n<p><b>makeNewStageAttempt(<\/b><br \/>\n<b> <\/b><\/p>\n<p><b>numPartitionsToCompute: Int,<\/b><br \/>\n<b> <\/b><\/p>\n<p><b>taskLocalityPreferences: Seq[Seq[TaskLocation]] = Seq.empty): Unit<\/b><\/p>\n<p><span style=\"font-weight: 400\">Basically, it creates a new TaskMetrics. With the help of RDD\u2019s<a href=\"https:\/\/data-flair.training\/blogs\/learn-apache-spark-sparkcontext\/\"><strong> SparkContext<\/strong><\/a>, we register the internal accumulators. We can also use the same Spark RDD that was defined when we were creating Stage.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In addition, to set latestInfo to be a StageInfo, from Stage we can use\u00a0the following:\u00a0nextAttemptId, numPartitionsToCompute, &amp; taskLocalityPreferences,\u00a0increments nextAttemptId counter.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The very important thing to note is that we use this method only when DAGScheduler submits missing tasks for a Spark stage.<\/span><\/p>\n<p><strong>Let&#8217;s revise: <a href=\"https:\/\/data-flair.training\/blogs\/data-type-mapping-between-r-and-spark\/\">Data Type Mapping between R and Spark<\/a><\/strong><\/p>\n<h2><span style=\"font-family: 'Georgia','serif';color: #333333\">Summary<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In this blog, we have studied the whole concept of Apache Spark Stages\u00a0in detail\u00a0and so now, it&#8217;s time to test yourself with Spark Quiz and know where you stand. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Hope, this blog helped to calm the curiosity about Stage in Spark. Still, if you have any query, ask in the comment section below.<span id=\"selectionBoundary_1556872713372_15725116373465808\" class=\"rangySelectionBoundary\" style=\"line-height: 0;display: none\"><\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A stage is nothing but a step in a physical execution plan. It is basically a physical unit of the execution plan. This blog aims at explaining the whole concept of Apache Spark Stage.&#46;&#46;&#46;<\/p>\n","protected":false},"author":7,"featured_media":41357,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[4408,11591,13126,13719,15112,15116,15595,15963],"class_list":["post-5941","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spark","tag-examples-of-spark-stages","tag-resultstage-in-spark","tag-spark-stage","tag-stages-in-spark","tag-types-of-spark-stage","tag-types-of-stages-in-spark","tag-what-is-apache-spark-stage","tag-what-is-spark-stage"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spark Stage- An Introduction to Physical Execution plan - DataFlair<\/title>\n<meta name=\"description\" content=\"Apache Spark Stage- what is spark stage, Types of stages in spark: ShuffleMapStage, ResultStage, Stage Contract, how to Create New Stage in Spark\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/spark-stage\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spark Stage- An Introduction to Physical Execution plan - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Apache Spark Stage- what is spark stage, Types of stages in spark: ShuffleMapStage, ResultStage, Stage Contract, how to Create New Stage in Spark\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/spark-stage\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-01-17T03:40:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-10-22T09:47:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-Physical-Execution-Plan-01.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spark Stage- An Introduction to Physical Execution plan - DataFlair","description":"Apache Spark Stage- what is spark stage, Types of stages in spark: ShuffleMapStage, ResultStage, Stage Contract, how to Create New Stage in Spark","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/spark-stage\/","og_locale":"en_US","og_type":"article","og_title":"Spark Stage- An Introduction to Physical Execution plan - DataFlair","og_description":"Apache Spark Stage- what is spark stage, Types of stages in spark: ShuffleMapStage, ResultStage, Stage Contract, how to Create New Stage in Spark","og_url":"https:\/\/data-flair.training\/blogs\/spark-stage\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-01-17T03:40:43+00:00","article_modified_time":"2019-10-22T09:47:59+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-Physical-Execution-Plan-01.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd"},"headline":"Spark Stage- An Introduction to Physical Execution plan","datePublished":"2018-01-17T03:40:43+00:00","dateModified":"2019-10-22T09:47:59+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/"},"wordCount":765,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-Physical-Execution-Plan-01.jpg","keywords":["Examples of Spark Stages","ResultStage in Spark","Spark Stage","Stages in spark","Types of Spark Stage","Types of stages in spark","what is apache spark stage","What is spark stage"],"articleSection":["Apache Spark Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/spark-stage\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/","url":"https:\/\/data-flair.training\/blogs\/spark-stage\/","name":"Spark Stage- An Introduction to Physical Execution plan - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-Physical-Execution-Plan-01.jpg","datePublished":"2018-01-17T03:40:43+00:00","dateModified":"2019-10-22T09:47:59+00:00","description":"Apache Spark Stage- what is spark stage, Types of stages in spark: ShuffleMapStage, ResultStage, Stage Contract, how to Create New Stage in Spark","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/spark-stage\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-Physical-Execution-Plan-01.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/01\/Spark-Stages-Physical-Execution-Plan-01.jpg","width":1200,"height":628,"caption":"Spark Stage- An Introduction to Physical Execution plan"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/spark-stage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Apache Spark Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/spark\/"},{"@type":"ListItem","position":3,"name":"Spark Stage- An Introduction to Physical Execution plan"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team specializes in creating clear, actionable content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Backed by industry expertise, we make learning easy and career-oriented for beginners and pros alike.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam3\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/5941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=5941"}],"version-history":[{"count":9,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/5941\/revisions"}],"predecessor-version":[{"id":55662,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/5941\/revisions\/55662"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/41357"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=5941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=5941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=5941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}