我将尝试以一般方式提出问题。
我有这样的功能
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a href="#">Button</a></li>
<li><a href="#">Button</a></li>
<li><a href="#">Button</a></li>
</ul>
我有一个对象 myFunction (Object first, Object second)
的rdd。
我需要在所有rdd元素上执行myFunction,在进程结束时我必须确保我的对象的所有对都是用myfunction执行的(..,..)
可能的一种方法是创建一个广播变量(作为我的RDD的副本),而不是
RDD [Object]
还有另一种方法可以提高性能吗?
答案 0 :(得分:2)
使用RDD的.cartesian
方法获取包含两者中所有元素对的RDD。在这种情况下,您需要RDD的笛卡儿:
rdd.cartesian(rdd).map({ case (x, y) => myFunction(x, y) })
请注意,这将包括一对元素与自身,以及两个顺序中的对,即(a,b)以及(b,a)。和(a,a)。