Sorting 如何实现排序合并Bucketing映射联接?
我想用相同的排序连接两个具有一个公共列和相同数量的bucket的表 除此设置外,我是否需要设置除设置属性之外的任何其他条件Sorting 如何实现排序合并Bucketing映射联接?,sorting,hadoop,merge,hive,bucket,Sorting,Hadoop,Merge,Hive,Bucket,我想用相同的排序连接两个具有一个公共列和相同数量的bucket的表 除此设置外,我是否需要设置除设置属性之外的任何其他条件 set hive.optimize.bucketmapjoin = true; set hive.optimize.bucketmapjoin.sortedmerge = true; set hive.input.format=org.apache.hadoop.hive.ql.io.BucketizedHiveInputFormat; 如果有两个数据集太大,无法进行地图
set hive.optimize.bucketmapjoin = true;
set hive.optimize.bucketmapjoin.sortedmerge = true;
set hive.input.format=org.apache.hadoop.hive.ql.io.BucketizedHiveInputFormat;
如果有两个数据集太大,无法进行地图端连接,那么连接它们的一种有效技术是将这两个数据集排序到bucket中 诀窍是按相同的联接键进行聚类和排序。
创建表格订单(整数、价格浮动、数量整数) 由(cid)聚集成32个桶 创建表customer(id int,第一个字符串,最后一个字符串) 按(id)聚类为32个bucket 这提供了两个主要的优化好处:
Sorting by join key makes joins easy ,all possible matches value resides on the same area on disk
Hash bucketing a join key ensures all matching values reside on same node ,equi join can then run with no shuffle .
上面的答案给了我一个想法。谢谢用户3484461