.sample()返回Spark中固定随机生成器种子的不同结果

时间:2016-07-11 15:57:15

标签: apache-spark apache-zeppelin random-seed

我是Spark的新手,我正在进行一些数据争论。从Spark中的RDD表中进行随机行选择时遇到问题。

为了确保我每次从RDD表中选择的行都是相同的(这对我来说更容易检查后面的表连接是否正确),我预先指定随机看看生成器。我使用.sample()。这是代码:

val distinct_id = rddtable.select("id").distinct().sample(false, .00008, seed = 1453)

随机生成器种子设置为1453.但是,

distinct_id.show()

每次运行时,

都会显示不同的结果。

就我在R和Python方面的经验而言,这是非常奇怪的。在R和Python中,如果我预先指定种子,随机生成器应该始终给我相同的结果。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

尝试在采样前对不同的id rdd进行排序。可能会发生每次运行之间id的顺序不同,因此采样结果不同。