在我们对Spark(Java)的Eclat算法的实现中,算法在单个节点上给出了正确的结果。但是当节点数增加时,算法会给出错误的结果。
具体来说,它在这一行上给出了不同的结果:
JavaPairRDD<List<String>, List<Long>> reduced = rdd.reduceByKey((x,y)->Lists.newArrayList(Sets.intersection(Sets.newHashSet(x), Sets.newHashSet(y))));
我们认为这是由于分区造成的。可能是什么原因,以及如何解决?感谢。