MapJoin


MapJoin()操作将输入的两个数据集按照相等的主键关联在一起。MapJoin 与 ReduceJoin得到的结果相同,但实现机制不同。MapJoin不重新分布数据,而是将其中数据量较小的一个数据集分批次分发到每个计算单元上进行查找 。它避免了重新分布数据的计算成本,但是如果两个数据集都不小则整体速度反而会慢;所以它适用在一个数据集的数据量较小的场景,如信号数据(量大)和车辆基本信息(量小)的关联。

  • selects: (必需提供) STRING格式。表达式,多表达式以逗号分隔,重复列名以left.和right.区分。例:'left.field_name as target1', 'right.field_name as target_2' 。
  • left: (必需提供) STRING格式。 联接左侧的表达式,多表达式以逗号分隔。
  • right: (必需提供) STRING格式。联接右侧的表达式,多表达式以逗号分隔。
  • type: (非必需) STRING格式。联接的方法。支持的方法包括'inner', 'left', 'right', 和'full'. 默认值为 'inner'。
  • batch: (非必需) INT格式。每批分布处理的行数。这是个性能优化参数。 默认值为80000。