def main(args: Array[String]): Unit = {
val spark = SparkSession.builder().appName("JoinCoreApiTest").master("local").getOrCreate()
val sc = spark.sparkContext
sc.setLogLevel("ERROR")
import spark.implicits._
val caseIdr = sc.makeRDD(Array(("1","a1"),("1","a4"),("2","a2"),("3","a3"))).toDF("caseId","r")
caseIdr.show(false)
val trans = sc.makeRDD(Array(("a1","x1"),("a2","x2"),("a3","x3"),("a4","x4"))).toDF("r","x")
trans.show(false)
val joinRdd = caseIdr.join(trans,Seq("r"),"inner")
joinRdd.show(false)
import org.apache.spark.sql.functions._
val value = joinRdd.groupBy("caseId").agg(count("r").as("cou"),collect_list("r").as("rs"),collect_list("x").as("xs")).show(false)}