我对Apache Spark完全陌生,我试图笛卡尔积两个RDD。作为一个例子,我有A和B如下:
A = {(a1,v1),(a2,v2),...}
B = {(b1,s1),(b2,s2),...}
我需要一个新的RDD,如:
C = {((a1,v1),(b1,s1)), ((a1,v1),(b2,s2)), ...}
有什么想法我可以做到这一点?尽可能简单:)
先谢了
PS:我终于按照@Amit Kumar的建议这样做了:
cartesianProduct = A.cartesian(B)
我对Apache Spark完全陌生,我试图笛卡尔积两个RDD。作为一个例子,我有A和B如下:
A = {(a1,v1),(a2,v2),...}
B = {(b1,s1),(b2,s2),...}
我需要一个新的RDD,如:
C = {((a1,v1),(b1,s1)), ((a1,v1),(b2,s2)), ...}
有什么想法我可以做到这一点?尽可能简单:)
先谢了
PS:我终于按照@Amit Kumar的建议这样做了:
cartesianProduct = A.cartesian(B)
3条答案
按热度按时间w7t8yxp51#
这不是点积,这是笛卡尔积。使用
cartesian
方法:返回这个RDD和另一个RDD的笛卡尔积,即所有元素对(a,B)的RDD,其中a在
this
中,b在other
中。Source
s5a0g9ez2#
你可以这样做:
如果您这样做:
你可以看到这就是你想要的。
ct2axkht3#
如果您对如何处理多个列表感到好奇,这里有一个pyspark中的示例