Join是SQL语句中的常用操作,良好的表结构能够将数据分散在不同的表中,使其符合某种范式,减少表冗余、更新容错等。而建立表和表之间关系的最佳方式就是Join操作。
SparkSQL作为大数据领域的SQL实现,自然也对Join操作做了不少优化,今天主要看一下在SparkSQL中的Join,inner join,left outer join,right outer join,full outer join。
1.innerjoin:
代码实现:
-
// 启动spark-shell,定义两个rdd,做join操作
-
[hadoop@hadoop01 ~]$ spark-shell --master local[2]
-
scala> val a = sc.parallelize(Array(("A","a1"),("B","b1"),("C","c1"),("D","d1"),("E","e1"),("F","f1")))
-
a: org.apache.spark.rdd.RDD[(String, String)] = ParallelCollectionRDD[0] at parallelize at <console>:24
-
scala> val b