

{"id":10840,"date":"2018-03-15T07:29:53","date_gmt":"2018-03-15T07:29:53","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=10840"},"modified":"2018-03-15T07:29:53","modified_gmt":"2018-03-15T07:29:53","slug":"hive-sort-merge-bucket-join","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/","title":{"rendered":"Sort Merge Bucket Join in Hive &#8211; SMB Join"},"content":{"rendered":"<p><span style=\"font-weight: 400\">In our last article, we discuss<strong> Skew Join in\u00a0Hive<\/strong>. Today, we will discuss\u00a0Sort Merge Bucket Join in Hive &#8211; SMB Join in Hive. Basically, when each mapper reads a bucket from the first table and the corresponding bucket from the second table in <strong>Apache Hive<\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400\"> Then we perform a Hive Sort merge Bucket join feature. However, there are much more to learn about Sort merge Bucket Map join in Hive. S<\/span><\/p>\n<p><span style=\"font-weight: 400\">o, in this article, we will learn the whole concept of Sort merge Bucket Map join in Hive, includes use cases &amp; disadvantages of Hive SMB Join and Hive Sort Merge Bucket Join example to understand well.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">What is Sort Merge Bucket Join in Hive?<\/span><\/h2>\n<p>In Hive, while each mapper reads a bucket from the first table and the corresponding bucket from the second table, in SMB join. Basically, then we perform a merge sort join feature. Moreover, we mainly use it when there is no limit on file or partition or table join.<\/p>\n<p>Also, when the tables are large we can use Hive Sort Merge Bucket join. However, using the join columns, all join the columns are bucketed and sorted in SMB. Although, make sure in SMB join all tables should have the same number of buckets.<\/p>\n<div id=\"attachment_10842\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Sort-Merge-BucketSMB-Map-Join.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10842\" class=\"wp-image-10842 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Sort-Merge-BucketSMB-Map-Join.png\" alt=\"Sort Merge Bucket Map Join\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Sort-Merge-BucketSMB-Map-Join.png 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Sort-Merge-BucketSMB-Map-Join-150x79.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Sort-Merge-BucketSMB-Map-Join-300x157.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Sort-Merge-BucketSMB-Map-Join-768x402.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Sort-Merge-BucketSMB-Map-Join-1024x536.png 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-10842\" class=\"wp-caption-text\">Sort Merge Bucket Map Join in Hive- SMB join<\/p><\/div>\n<h2><span style=\"font-weight: 400\">How Hive SMB Works?<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Basically, in Mapper, only Join is done. Moreover, all the buckets are joined with each other at the mapper which are corresponding.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Use Case of Sort Merge Bucket Join in Hive<\/span><\/h2>\n<p><span style=\"font-weight: 400\">There are several scenarios when we can use Hive Sort Merge Bucket Join:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">While all tables are Large.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Also, while all tables are bucketed using the join columns.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">While by using the join columns, Sorted.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Also, when the number of buckets is same as the number of all tables.<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400\">Disadvantages of Sort Merge Bucket Join in Hive<\/span><\/h2>\n<p>Following are the limitations of Hive Sort Merge Bucket Join:<\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">However, in the same way how the SQL joins Tables need to be bucketed. Hence, for other types of SQL, it cannot be used.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Also, it is possible that Partition tables might slow down here.<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400\">Hive Sort Merge Bucket Join Example<\/span><\/h2>\n<p><span style=\"font-weight: 400\">hive&gt; explain select \u00a0c1.* from c1,c2 where c1.col0=c2.col0; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">OK<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">STAGE DEPENDENCIES:<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0Stage-1 is a root stage<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0Stage-0 is a root stage<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">STAGE PLANS:<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0Stage: Stage-1<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0Map Reduce<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0Map Operator Tree:<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TableScan<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0alias: c1<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Statistics: Num rows: 9963904 Data size: 477218560 Basic stats: COMPLETE Column stats: NONE<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Sorted Merge Bucket Map Join Operator<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0condition map:<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Inner Join 0 to 1<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0condition expressions:<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00 {col0} {col1} {col2} {col3} {col4} {col5} {col6}<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01 {col0}<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0keys:<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00 col0 (type: string)<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01 col0 (type: string)<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col9<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Filter Operator<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0predicate: (_col0 = _col9) (type: boolean)<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Select Operator<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string)<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0File Output Operator<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0compressed: false<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0table:<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0input format: org.apache.hadoop.mapred.TextInputFormat<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0Stage: Stage-0<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0Fetch Operator<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> \u00a0\u00a0\u00a0\u00a0\u00a0limit: -1<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">Time taken: 0.134 seconds, Fetched: 37 row(s)<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Tips for Hive<\/span><span style=\"font-weight: 400\">\u00a0Sort Merge Bucket Join (SMB)<\/span><\/h2>\n<p>At below, we discuss some tips for Sort Merge Bucket Join in Hive.<br \/>\n<span style=\"font-weight: 400\">a. However, it is a requirement that all the tables need to be created bucketed and sorted on the same join columns.<\/span> Also, data need to be bucketed when inserting.<\/p>\n<p><span style=\"font-weight: 400\">So, before inserting data the one way is to set &#8220;hive.enforce.bucketing=true&#8221;.<\/span><\/p>\n<p><strong>For example:<\/strong><br \/>\n<span style=\"font-weight: 400\">create table c1(col0 string,col1 string,col2 string,col3 string,col4 string,col5 string,col6 string)<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">clustered by (col0) sorted by (col0) into 32 buckets;<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">create table c2(col0 string,col1 string,col2 string,col3 string,col4 string,col5 string,col6 string)<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">clustered by (col0) sorted by (col0) into 32 buckets;<\/span><br \/>\n<span style=\"font-weight: 400\">set hive.enforce.bucketing = true;<\/span><br \/>\n<span style=\"font-weight: 400\">From passwords insert OVERWRITE \u00a0table c1 select * order by col0;<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">From passwords insert OVERWRITE \u00a0table c2 select * order by col0;<\/span><br \/>\n<span style=\"font-weight: 400\">b. It is necessary to convert SMB join to SMB map join Below parameters need to set.<\/span><br \/>\n<span style=\"font-weight: 400\">set hive.auto.convert.sortmerge.join=true;<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">set hive.optimize.bucketmapjoin = true;<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">set hive.optimize.bucketmapjoin.sortedmerge = true;<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">set hive.auto.convert.sortmerge.join.noconditionaltask=true;<\/span><br \/>\n<span style=\"font-weight: 400\">c. Moreover, we can determine which table is for only streaming by using Big table selection policy parameter &#8220;hive.auto.convert.sortmerge.join.bigtable.selection.policy&#8221;.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Although, there are 3 values of it:<\/span><br \/>\n<span style=\"font-weight: 400\">org.apache.hadoop.hive.ql.optimizer.AvgPartitionSizeBasedBigTableSelectorForAutoSMJ (default)<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">org.apache.hadoop.hive.ql.optimizer.LeftmostBigTableSelectorForAutoSMJ<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">org.apache.hadoop.hive.ql.optimizer.TableSizeBasedBigTableSelectorForAutoSMJ<\/span><br \/>\n<span style=\"font-weight: 400\">d. Also, we can easily determine which table is small and should be loaded into memory by using Hint &#8220;MAPJOIN&#8221;.<\/span><br \/>\n<span style=\"font-weight: 400\">e. However, One of the major key points is Small tables are read on demand here. Hence, that implies not holding small tables in memory.<\/span><br \/>\n<span style=\"font-weight: 400\">f. Moreover,\u00a0it supports Outer join.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Conclusion<\/span><\/h2>\n<p><span style=\"font-weight: 400\">As a result, we have learned we will learn the what is Sort Merge Bucket Map join in Hive. Also, we have seen use cases and disadvantages of Hive SMB Join, and Hive\u00a0Sort Merge Bucket Join examples. Still, if any query occurs feel free to ask in the comment section. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Thus, we assure we will definitely get back to you. Moreover, keep visiting our Site\u00a0<strong>DataFlair<\/strong> for more article on Big Data and its technologies.\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our last article, we discuss Skew Join in\u00a0Hive. Today, we will discuss\u00a0Sort Merge Bucket Join in Hive &#8211; SMB Join in Hive. Basically, when each mapper reads a bucket from the first table&#46;&#46;&#46;<\/p>\n","protected":false},"author":7,"featured_media":42123,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[5789,5790,5791,8237,12998,12999,13000],"class_list":["post-10840","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hive","tag-hive-smb-join","tag-hive-sort-merge-bucket-join","tag-hive-sort-merge-bucket-join-example","tag-limitation-of-hive-sort-merge-bucket-join","tag-sort-merge-bucket-smb","tag-sort-merge-bucket-join","tag-sort-merge-bucket-map-join"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sort Merge Bucket Join in Hive - SMB Join - DataFlair<\/title>\n<meta name=\"description\" content=\"What is Sort Merge Bucket Join in Hive, Hive Sort Merge Bucket Map Join example,SMB Join in hive,Working,Tips &amp; Disadvantages of Hive Sort Merge Bucket Join\" \/>\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\/hive-sort-merge-bucket-join\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sort Merge Bucket Join in Hive - SMB Join - DataFlair\" \/>\n<meta property=\"og:description\" content=\"What is Sort Merge Bucket Join in Hive, Hive Sort Merge Bucket Map Join example,SMB Join in hive,Working,Tips &amp; Disadvantages of Hive Sort Merge Bucket Join\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/\" \/>\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-03-15T07:29:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Hive-Sort-Merge-Bucket-Join_Mesa-de-trabajo-1.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":"Sort Merge Bucket Join in Hive - SMB Join - DataFlair","description":"What is Sort Merge Bucket Join in Hive, Hive Sort Merge Bucket Map Join example,SMB Join in hive,Working,Tips & Disadvantages of Hive Sort Merge Bucket Join","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\/hive-sort-merge-bucket-join\/","og_locale":"en_US","og_type":"article","og_title":"Sort Merge Bucket Join in Hive - SMB Join - DataFlair","og_description":"What is Sort Merge Bucket Join in Hive, Hive Sort Merge Bucket Map Join example,SMB Join in hive,Working,Tips & Disadvantages of Hive Sort Merge Bucket Join","og_url":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-03-15T07:29:53+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Hive-Sort-Merge-Bucket-Join_Mesa-de-trabajo-1.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\/hive-sort-merge-bucket-join\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd"},"headline":"Sort Merge Bucket Join in Hive &#8211; SMB Join","datePublished":"2018-03-15T07:29:53+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/"},"wordCount":913,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Hive-Sort-Merge-Bucket-Join_Mesa-de-trabajo-1.jpg","keywords":["Hive SMB join","Hive Sort Merge Bucket Join","Hive Sort Merge Bucket Join Example","limitation of hive Sort Merge Bucket Join","Sort Merge Bucket (SMB)","Sort Merge Bucket join","Sort Merge Bucket Map Join"],"articleSection":["Hive Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/","url":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/","name":"Sort Merge Bucket Join in Hive - SMB Join - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Hive-Sort-Merge-Bucket-Join_Mesa-de-trabajo-1.jpg","datePublished":"2018-03-15T07:29:53+00:00","description":"What is Sort Merge Bucket Join in Hive, Hive Sort Merge Bucket Map Join example,SMB Join in hive,Working,Tips & Disadvantages of Hive Sort Merge Bucket Join","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Hive-Sort-Merge-Bucket-Join_Mesa-de-trabajo-1.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Hive-Sort-Merge-Bucket-Join_Mesa-de-trabajo-1.jpg","width":1200,"height":628,"caption":"Sort Merge Bucket Join in Hive - SMB Join"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/hive-sort-merge-bucket-join\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Hive Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/hive\/"},{"@type":"ListItem","position":3,"name":"Sort Merge Bucket Join in Hive &#8211; SMB Join"}]},{"@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\/10840","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=10840"}],"version-history":[{"count":0,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/10840\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/42123"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=10840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=10840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=10840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}