Spark 中是否可以从 scala 集合中实现“.combinations”函数?
/** Iterates over combinations.
*
* @return An Iterator which traverses the possible n-element combinations of this $coll.
* @example `"abbbc".combinations(2) = Iterator(ab, ac, bb, bc)`
*/
例如,对于大小 = 2 的组合,如何从 RDD[X] 到 RDD[List[X]] 或 RDD[(X,X)] 。并假设 RDD 中的所有值都是唯一的。
笛卡尔积和组合是两个不同的东西,笛卡尔积将创建一个大小为 RDDrdd.size() ^ 2
和组合将创建一个 RDD 大小rdd.size() choose 2
val rdd = sc.parallelize(1 to 5)
val combinations = rdd.cartesian(rdd).filter{ case (a,b) => a < b }`.
combinations.collect()
请注意,只有在列表元素上定义了排序时,这才有效,因为我们使用<
。这一项仅适用于选择两个,但可以通过确保关系轻松扩展a < b
对于序列中的所有 a 和 b
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)