gpt4 book ai didi

java - 以高效的方式获取所有可能的 JavaPairRDD 键组合

转载 作者:行者123 更新时间:2023-12-02 10:27:21 25 4
gpt4 key购买 nike

使用 Spark,我的算法的中间步骤之一将输出(Key,Vector)到 PairRDD。此步骤完成后,我想生成所有可能的 Key 的 2 组合,并对它们的值执行进一步的操作,即我想要一个带有 ((Key1, Key2), (Vector1, Vector2)) 的 PairRDD。

但是,我不确定如何使用 Spark 以有效的方式执行此操作 - 我能想到的唯一方法是在一台机器上收集所有键值对并在那里执行组合,这显然不是可扩展。

不过,我想我也许能够利用数据集的另一个属性:如果两个值 vector 的点积 (Vector <>1, Vector<>2) 不为零。(实际上,我的 vector 是 HashMap,零点积意味着空的 keySet 交集)

关于如何以可扩展的方式实现这一目标,有什么想法吗?我想不通。谢谢!!

最佳答案

据我所知,您想要进行笛卡尔乘法 Spark rdd ,幸运的是,它已经提供了该功能,它将在不收集单个机器中的所有数据的情况下,而是通过在每个执行器上运行来实现这一点。

yourPairRdd.cartesian(yourPairRdd);

如果你想过滤总和为0的结果,只需使用过滤函数

yourPairRdd.cartesian(yourPairRdd).filter(filterFunc);

关于java - 以高效的方式获取所有可能的 JavaPairRDD 键组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53852834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com