【发布时间】:2016-07-12 00:33:44
【问题描述】:
我是 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 中,如果我预先指定种子,随机生成器应该一直给我相同的结果。
感谢您对此的帮助。
【问题讨论】:
-
我怀疑这是因为每次调用 show() 时 Spark 都会从惰性求值中重新计算。如果你在调用 sample() 之后缓存,你应该每次都得到相同的结果。
标签: apache-spark apache-zeppelin random-seed