我有两个RDD,如下所示
case class Person (name,age,phno,email)
case class Employee (empid,name,age,phone,email)
rdd1[Person]
和rdd2[Employee]
我想加入这两个基于电话和电子邮件的rdd,需要获得
RDD[Person,Employee]
有人可以建议如何做到这一点吗?
创建两个数据框。 假设您已经从案例类在 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