Hadoop 猪:地图边连接是如何工作的?
在MapReduce中,地图侧连接的要求如下:Hadoop 猪:地图边连接是如何工作的?,hadoop,join,mapreduce,apache-pig,cloudera,Hadoop,Join,Mapreduce,Apache Pig,Cloudera,在MapReduce中,地图侧连接的要求如下: 数据应该以特定的方式进行分区和排序 每个输入数据应划分在相同数量的分区中 必须使用相同的键进行排序 特定密钥的所有记录必须位于同一分区中 我有一个简单的猪脚本: A = LOAD '/input_01/*.parquet' using parquet.pig.ParquetLoader(); B = LOAD '/input_02/*.parquet' using parquet.pig.ParquetLoader(); C =
- 数据应该以特定的方式进行分区和排序李>
- 每个输入数据应划分在相同数量的分区中
- 必须使用相同的键进行排序
- 特定密钥的所有记录必须位于同一分区中
A = LOAD '/input_01/*.parquet' using parquet.pig.ParquetLoader();
B = LOAD '/input_02/*.parquet' using parquet.pig.ParquetLoader();
C = JOIN A BY id, B BY id;
STORE C into '/output' using parquet.pig.ParquetStorer();
运行此脚本后,控制台输出告诉我,这样的内部联接会导致映射端哈希联接
然而,据我所知,我的输入数据集不是按特定键排序的,我也不知道分区
在这种情况下,PIG如何成功地进行地图侧连接?谢谢 你们能复制并粘贴控制台上写的东西吗?我不认为猪写的是用过的连接类型!我最近注意到,使用合并联接对一个脚本的运行时没有显著影响。因此,我怀疑pig本身有时能够优化“引擎盖下”的简单连接。(当然,这只是一种怀疑。)