【发布时间】:2021-09-17 11:21:40
【问题描述】:
如果 RDD1 = [p,k,t] 现在我想用所有可能的组合创建新的 RDD2,如下所示,长度为 k 的新 RDD .i.e.除了相同的元素组合,如(p,p),(k,k),(t,t)。
【问题讨论】:
-
请提供足够的代码,以便其他人更好地理解或重现问题。
标签: java apache-spark
如果 RDD1 = [p,k,t] 现在我想用所有可能的组合创建新的 RDD2,如下所示,长度为 k 的新 RDD .i.e.除了相同的元素组合,如(p,p),(k,k),(t,t)。
【问题讨论】:
标签: java apache-spark
笛卡尔连接可以与过滤器一起使用:
List<String> data = Lists.newArrayList("p", "k", "t");
final JavaRDD<String> values = jsc().parallelize(data);
final JavaPairRDD<String, String> result = values
.cartesian(values)
.filter(kv -> kv._1 != kv._2);
输出:
(p,k)
(p,t)
(k,p)
(k,t)
(t,k)
(t,p)
【讨论】: