【发布时间】:2018-08-17 06:39:37
【问题描述】:
我有两个 RDD。第一个包含
(pID, Name, Price, Column1)
第二个包含
(pID, Seller, Column3)
我想获取 pID 相同的第 3 列。我仍然想保持第一个 RDD 格式。我想不出输出这个的逻辑。我也对函数式编程逻辑感到不安。请帮帮我。
【问题讨论】:
标签: apache-spark pyspark rdd
我有两个 RDD。第一个包含
(pID, Name, Price, Column1)
第二个包含
(pID, Seller, Column3)
我想获取 pID 相同的第 3 列。我仍然想保持第一个 RDD 格式。我想不出输出这个的逻辑。我也对函数式编程逻辑感到不安。请帮帮我。
【问题讨论】:
标签: apache-spark pyspark rdd
val as = List((101, ("iteam A", 1.24)),
(102, ("iteam B", 2.45)),
(103, ("iteam C", 3.54)))
val rdd1 = sc.parallelize(as) // Pair Rdd with key = pId, value = (name, price)
val ls = List((101, "Seller A"),
(101, "Seller B"),
(102, "Seller C"),
(102, "Seller D"),
(103, "Seller E"))
val rdd2 = sc.parallelize(ls) // Pair Rdd with key = pId, value = (seller)
//call inner join:
val innerJoinedRdd = rdd1.join(rdd2)
innerJoinedRdd.collect().foreach(println)
(101,((iteam A,1.24),Seller A))
(101,((iteam A,1.24),Seller B))
(102,((iteam B,2.45),Seller C))
(102,((iteam B,2.45),Seller D))
(103,((iteam C,3.54),Seller E))
【讨论】: