【发布时间】:2016-01-26 20:16:08
【问题描述】:
这已经困扰了我一段时间,我确信我很无脑。
我有两个键/值对的 RDD,对应一个名称和相关的稀疏向量:
RDDA = [ (nameA1, sparsevectorA1), (nameA2, sparsevectorA2), (nameA3, sparsevectorA3) ]
RDDB = [ (nameB1, sparsevectorB1), (nameB2, sparsevectorB2) ]
我希望最终结果将第一个 RDD 的每个元素与第二个 RDD 中的每个元素进行比较,生成 3 * 2 = 6 个元素的 RDD。特别是,我想要第二个 RDD 中元素的名称和两个稀疏向量的点积:
RDDC = [ (nameB1, sparsevectorA1.dot(sparsevectorB1)), (nameB2, sparsevectorA1.dot(sparsevectorB2)),
(nameB1, sparsevectorA2.dot(sparsevectorB1)), (nameB2, sparsevectorA2.dot(sparsevectorB2)),
(nameB1, sparsevectorA3.dot(sparsevectorB1)), (nameB2, sparsevectorA3.dot(sparsevectorB2)) ]
是否有合适的地图或内置函数来执行此操作?
我认为这样的手术一定存在,因此我有一种无脑的感觉。如果我收集两个 RDD 然后实现一个 for 循环,我可以轻松且不优雅地做到这一点,但当然这并不令人满意,因为我想将它们保持为 RDD 形式。
感谢您的帮助!
【问题讨论】:
标签: apache-spark pyspark