

{"id":2244,"date":"2017-04-25T09:29:08","date_gmt":"2017-04-25T09:29:08","guid":{"rendered":"http:\/\/data-flair.training\/blogs\/?p=2244"},"modified":"2018-11-21T11:29:57","modified_gmt":"2018-11-21T05:59:57","slug":"hadoop-partitioner-tutorial","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/","title":{"rendered":"Hadoop Partitioner &#8211; Internals of MapReduce Partitioner"},"content":{"rendered":"<h2>1. Hadoop Partitioner \/ MapReduce Partitioner<\/h2>\n<p>In this<a href=\"http:\/\/data-flair.training\/blogs\/hadoop-mapreduce-tutorial\/\"><strong> MapReduce Tutorial<\/strong><\/a>, our objective is to discuss what is <a href=\"http:\/\/data-flair.training\/blogs\/hadoop-tutorial-for-beginners\/\"><strong>Hadoop<\/strong><\/a> Partitioner. The<strong> Partitioner<\/strong>\u00a0in MapReduce controls the partitioning of the key of the intermediate mapper output. By hash function, key (or a subset of the key) is used to derive the partition. A total number of partitions depends on the number of reduce task. Here\u00a0we will also learn what is the need of Hadoop partitioner, what is the default Hadoop partitioner, how many practitioners are required in Hadoop and what do you mean by poor partitioning in Hadoop along with ways to overcome MapReduce poor partitioning.<\/p>\n<div id=\"attachment_43061\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-43061\" class=\"size-full wp-image-43061\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01.jpg\" alt=\"Hadoop Partitioner - Internals of MapReduce Partitioner\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-43061\" class=\"wp-caption-text\">Hadoop Partitioner &#8211; Internals of MapReduce Partitioner<\/p><\/div>\n<h2>2. What is Hadoop Partitioner?<\/h2>\n<p>Before we start with MapReduce partitioner, let us understand what is Hadoop <strong><a href=\"http:\/\/data-flair.training\/blogs\/mapper-in-hadoop-mapreduce\/\">mapper<\/a><\/strong>, Hadoop<strong><a href=\"http:\/\/data-flair.training\/blogs\/reducer-in-hadoop-mapreduce\/\"> Reducer<\/a><\/strong>, and <strong><a href=\"http:\/\/data-flair.training\/blogs\/combiner-in-hadoop-mapreduce-advantages-disadvantages\/\">combiner\u00a0in Hadoop<\/a><\/strong>?<\/p>\n<p><strong>Partitioning<\/strong> of the keys of the intermediate map output is controlled by the Partitioner. By hash function, key (or a subset of the key) is used to derive the partition. According to the<a href=\"http:\/\/data-flair.training\/blogs\/key-value-pairs-hadoop-mapreduce\/\"><strong> key-value<\/strong><\/a> each mapper output is partitioned and records having the same key value go into the same partition (within each mapper), and then each partition is sent to a reducer. Partition class determines which partition a given (key, value) pair will go. Partition phase takes place after map phase and before reduce phase. Lets move ahead with need of Hadoop Partitioner and if you face any difficulty anywhere in Hadoop MapReduce tutorial, you can ask us in comments.<\/p>\n<p><strong>Read: <a href=\"https:\/\/data-flair.training\/blogs\/hadoop-tutorial\/\">A Guide on Big Data Hadoop for beginners<\/a><\/strong><\/p>\n<h2>3. Need of Hadoop MapReduce Partitioner?<\/h2>\n<p>Let&#8217;s now discuss what is the need of Mapreduce Partitioner in Hadoop?<\/p>\n<p><strong><a href=\"http:\/\/data-flair.training\/blogs\/how-hadoop-mapreduce-works\/\">MapReduce job<\/a><\/strong> takes an input data set and produces the list of the key-value pair which is the result of map phase in which input data is split and each task processes the split and each map, output the list of key-value pairs. Then, the output from the map phase is sent to reduce task which processes the user-defined reduce function on map outputs. But before reduce phase, partitioning of the map output take place on the basis of the key and sorted.<br \/>\nThis partitioning specifies that all the values for each key are grouped together and make sure that all the values of a single key go to the same reducer, thus allows even distribution of the map output over the reducer.<\/p>\n<p>Partitioner in Hadoop MapReduce redirects the mapper output to the reducer by determining which reducer is responsible for the particular key.<br \/>\n<strong>Read: <a href=\"https:\/\/data-flair.training\/blogs\/hadoop-mapreduce-introduction-tutorial-comprehensive-guide\/\">Hadoop MapReduce tutorial<\/a><\/strong><\/p>\n<h2>4. Default MapReduce Partitioner<\/h2>\n<p>The Default Hadoop partitioner in Hadoop MapReduce is Hash Partitioner which computes a hash value for the key and assigns the partition based on this result.<\/p>\n<h2>5. How many Partitioners are there in Hadoop?<\/h2>\n<p>The total number of Partitioners that run in Hadoop is equal to the number of reducers i.e. Partitioner will divide the data according to the number of reducers which is set by <em>JobConf.setNumReduceTasks()<\/em> method. Thus, the data from single partitioner is processed by a single reducer. And partitioner is created only when there are multiple reducers.<\/p>\n<h2>6. Poor Partitioning in Hadoop MapReduce<\/h2>\n<p>If in data input one key appears more than any other key. In such case, we use two mechanisms to send data to partitions.<\/p>\n<ul>\n<li>The key appearing more will be sent to one partition.<\/li>\n<li>All the other key will be sent to partitions according to their hashCode().<\/li>\n<\/ul>\n<p>But if <strong>hashCode()<\/strong> method does not uniformly distribute other keys data over partition range, then data will not be evenly sent to reducers. Poor partitioning of data means that some reducers will have more data input than other i.e. they will have more work to do than other reducers. So, the entire job will wait for one reducer to finish its extra-large share of the load.<\/p>\n<p><strong>How to overcome poor partitioning in MapReduce?<\/strong><br \/>\nTo overcome poor partitioner in Hadoop\u00a0MapReduce, we can create Custom partitioner, which allows sharing workload uniformly across different reducers.<\/p>\n<p><strong>Read: <a href=\"https:\/\/data-flair.training\/blogs\/hadoop-mapreduce-job-execution-flow\/\">MapReduce DataFlow<\/a><\/strong><br \/>\nThis was all on Hadoop Mapreduce Partitioners.<\/p>\n<h2>7. Hadoop MapReduce &#8211; Conclusion<\/h2>\n<p>In conclusion, Hadoop Partitioner allows even distribution of the map output over the reducer. In Partitioner, partitioning of map output take place on the basis of the key and sorted.<br \/>\n<strong>See Also-<\/strong><\/p>\n<ul>\n<li><strong><a href=\"http:\/\/data-flair.training\/blogs\/counters-hadoop-mapreduce\/\">Counters in Hadoop MapReduce<\/a><\/strong><\/li>\n<li><strong><a href=\"http:\/\/data-flair.training\/blogs\/hadoop-outputformat\/\">Hadoop MapReduce OutputFormat<\/a><\/strong><\/li>\n<\/ul>\n<p>I hope this post has helped you in understanding the actual need of Hadoop partitioner. If you have any questions related to Mapreduce Partitioner, please drop me a comment below.<\/p>\n<p><a href=\"https:\/\/hadoop.apache.org\/docs\/r3.1.0\/api\/org\/apache\/hadoop\/mapreduce\/Partitioner.html\">Reference<\/a><span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:2366,&quot;href&quot;:&quot;https:\\\/\\\/hadoop.apache.org\\\/docs\\\/r3.1.0\\\/api\\\/org\\\/apache\\\/hadoop\\\/mapreduce\\\/Partitioner.html&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20230401101443\\\/https:\\\/\\\/hadoop.apache.org\\\/docs\\\/r3.1.0\\\/api\\\/org\\\/apache\\\/hadoop\\\/mapreduce\\\/Partitioner.html&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-11 04:38:33&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-15 13:42:11&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-19 11:50:07&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-22 12:25:53&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-28 14:11:03&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-01 13:20:26&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-06 09:30:18&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-10 10:32:08&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-20 05:09:06&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-23 09:06:47&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-07 14:05:38&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-13 04:05:11&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-18 00:26:48&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-22 15:57:53&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-02 12:06:00&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-05 13:21:35&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-09 10:01:45&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-21 06:41:10&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-25 10:53:23&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-31 13:43:29&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-05 13:48:03&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-09 05:19:54&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-14 09:19:42&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-20 03:12:54&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-01 14:23:01&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-06 23:18:38&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-12 10:26:00&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-17 13:01:09&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-24 04:52:54&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-12 11:27:08&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-19 03:43:46&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-23 23:36:50&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-23 23:36:50&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Hadoop Partitioner \/ MapReduce Partitioner In this MapReduce Tutorial, our objective is to discuss what is Hadoop Partitioner. The Partitioner\u00a0in MapReduce controls the partitioning of the key of the intermediate mapper output. By&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":43061,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37],"tags":[5303,8559,9425,9429],"class_list":["post-2244","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mapreduce","tag-hadoop-partitioner","tag-mapreduce-partitioner","tag-partitioner-in-mapreduce","tag-partitioning-in-hadoop"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Hadoop Partitioner - Internals of MapReduce Partitioner - DataFlair<\/title>\n<meta name=\"description\" content=\"Hadoop Partitioner - what is Hadoop partitioner in mapreduce, need of MapReduce partitioner, number of partitioner in hadoop, default Hadoop partitioner\" \/>\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\/hadoop-partitioner-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hadoop Partitioner - Internals of MapReduce Partitioner - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Hadoop Partitioner - what is Hadoop partitioner in mapreduce, need of MapReduce partitioner, number of partitioner in hadoop, default Hadoop partitioner\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/\" \/>\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=\"2017-04-25T09:29:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-11-21T05:59:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-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":"Hadoop Partitioner - Internals of MapReduce Partitioner - DataFlair","description":"Hadoop Partitioner - what is Hadoop partitioner in mapreduce, need of MapReduce partitioner, number of partitioner in hadoop, default Hadoop partitioner","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\/hadoop-partitioner-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Hadoop Partitioner - Internals of MapReduce Partitioner - DataFlair","og_description":"Hadoop Partitioner - what is Hadoop partitioner in mapreduce, need of MapReduce partitioner, number of partitioner in hadoop, default Hadoop partitioner","og_url":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2017-04-25T09:29:08+00:00","article_modified_time":"2018-11-21T05:59:57+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-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\/hadoop-partitioner-tutorial\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"Hadoop Partitioner &#8211; Internals of MapReduce Partitioner","datePublished":"2017-04-25T09:29:08+00:00","dateModified":"2018-11-21T05:59:57+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/"},"wordCount":757,"commentCount":7,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01.jpg","keywords":["Hadoop partitioner","MapReduce Partitioner","Partitioner in MapReduce","Partitioning in Hadoop"],"articleSection":["MapReduce Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/","url":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/","name":"Hadoop Partitioner - Internals of MapReduce Partitioner - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01.jpg","datePublished":"2017-04-25T09:29:08+00:00","dateModified":"2018-11-21T05:59:57+00:00","description":"Hadoop Partitioner - what is Hadoop partitioner in mapreduce, need of MapReduce partitioner, number of partitioner in hadoop, default Hadoop partitioner","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/Partitioner-in-Hadoop-MapReduce-01.jpg","width":1200,"height":628,"caption":"Hadoop Partitioner - Internals of MapReduce Partitioner"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/hadoop-partitioner-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"MapReduce Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/mapreduce\/"},{"@type":"ListItem","position":3,"name":"Hadoop Partitioner &#8211; Internals of MapReduce Partitioner"}]},{"@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\/2c58ecb4f73a39f0ef993f1ddfcd7b89","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team provides industry-driven content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our expert educators focus on delivering value-packed, easy-to-follow resources for tech enthusiasts and professionals.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam2\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/2244","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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=2244"}],"version-history":[{"count":6,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/2244\/revisions"}],"predecessor-version":[{"id":43062,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/2244\/revisions\/43062"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/43061"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=2244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=2244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=2244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}