如何加入两个RDD?

时间:2018-08-08 11:55:49

标签: scala apache-spark

我有两个RDD如下

PrintWriter

case class Person (name,age,phno,email) case class Employee (empid,name,age,phone,email) rdd1[Person]

我想通过电话和电子邮件加入这两个rdd,需要获得

rdd2[Employee]

有人可以建议如何做吗?

1 个答案:

答案 0 :(得分:-1)

创建两个数据框。 假设您已从案例类对rdd施加了架构:

df1 = rdd1.toDF.withColumn("Primary_key_1",concat($"phno",lit("_"),$"email"))

df2 = dd2.df.withColumn("Primary_key_2",concat($"phno",lit("_"),$"email")).drop("phno","email")

rdd = df1.join(df2,$"Primary_key_1"===$"Primary_key_2","left_outer").drop("Primary_key_2","Primary_key_1").rdd