在本地和群集上使用groupByKey()时的结果不同

时间:2016-08-19 12:46:00

标签: apache-spark

我有一个RDD[(DenseVector[Int], String)],DenseVector是Breeze中使用的一个集合,我会在我的代码段中将其称为DV。让我们使用一个简单的moon = [(DV(4), "Tinker"), (DV(2), "Tailor"), (DV(4), "Soldier"), (DV(2), "Sailor"), (DV(2), "Poor Man"), (4), "Rich Man")]。我在本地使用moon.groupByKey()按键对其进行分组,然后将其保存为文本文件,结果为:

(DV(4), CompactBuffer("Tinker", "Soldier", "Rich Man")), (DV(2), CompactBuffer("Tailor", "Sailor", "Poor Man"))

然后我使用相同的代码,但使用由两个从属组成的Spark群集,而不是local。结果由两个文件组成,部分为00000:

(DV(4), CompactBuffer("Tinker")), (DV(2), CompactBuffer("Tailor")), (DV(4), CompactBuffer("Soldier")),

部分00001:

(DV(2), CompactBuffer("Sailor")), (DV(2), CompactBuffer("Poor Man")), (DV(4), CompactBuffer("Rich Man"))

有没有理由解释这种行为,为什么groupByKey()在群集中使用它时无法按键分组?我使用的是Spark 2.0.0。

0 个答案:

没有答案