1:使用Scala的算子join进行练习
val spark = SparkSession.builder().master("local[2]").appName("simple").getOrCreate()
val visit = spark.sparkContext.parallelize(List(("index.html","1.2.3.4"),("about.html","3,4,5,6"),("index.html","1.3.3.1"),("hello.html","1,2,3,4")),2);
val page = spark.sparkContext.parallelize(List(("index.html","home"),("about.html","about"),("hi.html","2.3.3.3")),2);
visit.join(page).foreach(println)
page.join(visit).foreach(println)
打印结果:
第一个join
(index.html,(1.2.3.4,home))
(about.html,(3,4,5,6,about))
(index.html,(1.3.3.1,home))
第二个join
(index.html,(home,1.2.3.4))
(index.html,(home,1.3.3.1))
(about.html,(about,3,4,5,6))
可见,join算子使用的是内连接的join,
以某一个表为基础,KEY相同的打印出来,不相同的不打印