我是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中,如果我预先指定种子,随机生成器应该始终给我相同的结果。
感谢您的帮助。
答案 0 :(得分:1)
尝试在采样前对不同的id rdd进行排序。可能会发生每次运行之间id的顺序不同,因此采样结果不同。