为什么我从Spark rdd.count()获得不一致的结果?

时间:2016-09-08 19:13:45

标签: apache-spark pyspark

代码如下。如果我多次运行它,两个rdd.count()调用的差异会发生变化。我的印象是rdd.filter(func)不应该影响原来的rdd。

print(rdd.count())
    8105
print(rdd.filter(lambda d: d['label'] == 1).count())
    3528
print(rdd.count())
    8099

所以...,建立下面的评论,这个rdd是用randomSplit()创建的。 RandomSplit()是一个惰性变换,可以在每个动作上重新计算,例如:计数()。 Zero323建议添加一个种子将摆脱我的结果中的不确定性。但是,我添加了一个(并且无法找到任何随机函数的任何其他用途)而没有任何影响,因此问题仍然存在。

0 个答案:

没有答案