<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sudarshan Sreenivasan</title>
    <description>The latest articles on DEV Community by Sudarshan Sreenivasan (@sudarshan89).</description>
    <link>https://dev.to/sudarshan89</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1071154%2F6b5cdbd3-9dd6-4742-9ec8-0dd9e26dc768.png</url>
      <title>DEV Community: Sudarshan Sreenivasan</title>
      <link>https://dev.to/sudarshan89</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sudarshan89"/>
    <language>en</language>
    <item>
      <title>Intentional decomposition</title>
      <dc:creator>Sudarshan Sreenivasan</dc:creator>
      <pubDate>Sun, 12 Apr 2026 08:13:53 +0000</pubDate>
      <link>https://dev.to/sudarshan89/intentional-decomposition-5gf5</link>
      <guid>https://dev.to/sudarshan89/intentional-decomposition-5gf5</guid>
      <description>&lt;p&gt;I find it easy to understand certain concepts with help of diagrams and this is certainly one of them.&lt;/p&gt;

&lt;p&gt;Lets assume that our secondary sorting is on a composite key made out of Last Name and First Name.&lt;/p&gt;

&lt;p&gt;Composite Key&lt;/p&gt;

&lt;p&gt;With the composite key out of the way, now lets look at the secondary sorting mechanism&lt;/p&gt;

&lt;p&gt;Secondary Sorting Steps&lt;/p&gt;

&lt;p&gt;The partitioner and the group comparator use only natural key, the partitioner uses it to channel all records with the same natural key to a single reducer. This partitioning happens in the Map Phase, data from various Map tasks are received by reducers where they are grouped and then sent to the reduce method. This grouping is where the group comparator comes into picture, if we would not have specified a custom group comparator then Hadoop would have used the default implementation which would have considered the entire composite key, which would have lead to incorrect results.&lt;/p&gt;

&lt;p&gt;Overview of MR steps&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>discuss</category>
      <category>management</category>
      <category>watercooler</category>
    </item>
  </channel>
</rss>
