在关系型数据库,比如Mysql中我们查询的时候经常会使用join去关联不同的表来进行查询,在Spark中也提供了同样的功能,常用的是join和cogroup算子,两者实现的功能很类似,都是将两个RDD关联起来,但两者还是有区别的,本文根据代码然后讲解两种的区别和联系。目前为止,已经写了Spark中常用的8个transformation算子,map、flatMap、filter、groupByKey、reduceByKey、sortByKey、join和cogroup,下一篇会写Spark中常用的action算子案例。
join和cogroup算子案例:
Java版本
package com.spark.core;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaSparkContext;
import scala.Tuple2;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class TransformationJava {
public static void main(String[] args) {
// join(); cogroup();
}
/*** join案例,输出员工工资*/
public static void join(){
// 创建SparkConf对象 SparkConf conf = new SparkConf()
.setAppName("groupByKey")
.setMaster("local[2]");
// 创建JavaSparkContext JavaSparkContext sc = new JavaSparkContext(conf);
// 创建集合 // 员工集合 List> employeeList = Arrays.asList(
new Tuple2<>(1,"Allen"),
<