scala – Spark:从RDD [X]生成所有可能组合的RDD [(X,X)]
发布时间:2020-12-16 09:35:31 所属栏目:安全 来源:网络整理
导读:从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)` */ 例
从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)` */ 例如,对于size = 2的组合,如何从RDD [X]到RDD [List [X]]或RDD [(X,X)]。如果RDD中的所有值都是唯一的。 解决方法
笛卡尔乘积和组合是两个不同的东西,笛卡尔乘积将创建大小为rdd.size()^ 2的RDD,组合将创建一个大小为rdd.size()的RDD,选择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的顺序 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |