使用 PySpark 随机洗牌/重新排序 RDD 对象的元素

问题描述

我有一个由列表对象组成的 RDD 对象(例如: [[1,2],[3,4],[5,6]] )。 我需要取一个样本,并为此使用 sample() pyspark 函数,但它看起来像是检索第一个元素而不是随机样本。

当时我的想法是对元素进行混洗,然后使用 sample() 函数,但我无法进行随机化。

解决方法

您可以使用takeSample

rdd2 = rdd.takeSample(False,1)

第一个参数是是否有替换采样,第二个参数是你想从 RDD 中采样多少项。