0
正如問題中所指出的,我想用一列rdd來做笛卡兒。例如:Pyspark只有一列的笛卡爾積?
rdd1:
id1 A
id2 B
id3 C
我的輸出應該是:
id1 A A
id1 A B
id1 A C
id2 B A
id2 B B
id2 B C
id3 C A
id3 C B
id3 C C
正如問題中所指出的,我想用一列rdd來做笛卡兒。例如:Pyspark只有一列的笛卡爾積?
rdd1:
id1 A
id2 B
id3 C
我的輸出應該是:
id1 A A
id1 A B
id1 A C
id2 B A
id2 B B
id2 B C
id3 C A
id3 C B
id3 C C
爲此,您可以創建一個新的RDD僅與第二列,rdd2=rdd.map(lambda l: l[1])
。然後做這兩個RDDS的cartesian
:
rdd.cartesian(rdd2).map(lambda v: (v[0][0],v[0][1],v[1]))
的map
是那裏,因爲cartesian
將返回喜歡((id1,A),A)
行,而map
轉換,要(id1,A,A)