新的火花。我有两个RDD,并希望在它们上生成结果RDD,如下所示。
val rdd1 = Array(1, 2)
val rdd2 = Array(a, b, c)
val resultRDD = [(1,a), (1,b), (1,c), (2,a), (2,b), (2,c)]
任何人都可以帮我解决我需要使用哪些转换或操作来生成 resultRDD ,如上所述。仅供参考,我是用scala写的。
修改
感谢。火花笛卡尔对我有用,如下所示。
val data = Array('a', 'b')
val rdd1 = sc.parallelize(data)
val data2 = Array(1, 2, 3)
val rdd2 = sc.parallelize(data2)
rdd1.cartesian(rdd2).foreach(println)
答案 0 :(得分:9)
def cartesian[U](other: RDD[U])(implicit arg0: ClassTag[U]): RDD[(T, U)]
返回此RDD的笛卡尔乘积和另一个,即所有元素对(a,b)的RDD,其中a在此处,b在其他元素中。
答案 1 :(得分:1)
val data = Array('a', 'b')
val rdd1 = sc.parallelize(data)
val data2 = Array(1, 2, 3)
val rdd2 = sc.parallelize(data2)
rdd1.cartesian(rdd2).foreach(println)