我读到我们可以在Spark Dataframe上进行分层采样,如下所示:
val fractions = Map(0 -> 0.7, 1 -> 0.3)
val newSample = Df.sampleBy("label",fractions,0)
但是,它没有选择我想要的样本量的选项。还有另一种方法可以做到吗?
我知道这个问题与此Stratified sampling in Spark
类似我确实实现了该方法。但是我也想选择我的样本大小,因为没有选项指定样本大小,只有分数。
我想获得10%的样本的方法如下:
Df.sample(false,0.1).stat.sampleBy("label",fractions,0)
但是初始采样可能不会分层:/