Join Spark笛卡尔积的洗牌
假设有一个问题,其中我有一个RDD X,我计算单个工作节点的平均值m,然后我想计算X-m,例如计算stdevs。我希望这种情况发生在集群中,而不是驱动程序节点,即我希望m是分布式的。我想把它实现为这两个RDD的笛卡尔积,这样,基本上只要m被计算出来,它就会传播到所有工作人员,他们就会计算X-m。我担心Spark会把X拖到m住的地方去做减法运算。如果发生X.cartesianm,谁将被洗牌有保证吗Join Spark笛卡尔积的洗牌,join,apache-spark,cartesian-product,cartesian,Join,Apache Spark,Cartesian Product,Cartesian,假设有一个问题,其中我有一个RDD X,我计算单个工作节点的平均值m,然后我想计算X-m,例如计算stdevs。我希望这种情况发生在集群中,而不是驱动程序节点,即我希望m是分布式的。我想把它实现为这两个RDD的笛卡尔积,这样,基本上只要m被计算出来,它就会传播到所有工作人员,他们就会计算X-m。我担心Spark会把X拖到m住的地方去做减法运算。如果发生X.cartesianm,谁将被洗牌有保证吗 上面的mean/stedev问题只是为了举例说明——我知道它并不优秀,但它足够简单。什么是X-m?X
上面的mean/stedev问题只是为了举例说明——我知道它并不优秀,但它足够简单。什么是X-m?X的平均值是多少?为什么要先计算单个工作节点的平均值m?谢谢@tsiki。平均值是我计算的指标之一,它由一个worker节点的key减少。当你从它的每一项中减去m时,X-m就是{X vector}。这是流式应用程序的一部分。