Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 如何实现排序合并Bucketing映射联接?_Sorting_Hadoop_Merge_Hive_Bucket - Fatal编程技术网

Sorting 如何实现排序合并Bucketing映射联接?

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; 如果有两个数据集太大,无法进行地图

我想用相同的排序连接两个具有一个公共列和相同数量的bucket的表

除此设置外,我是否需要设置除设置属性之外的任何其他条件

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