我要在数据帧上分层样本。但是在所有示例中,都涉及RDD,这需要花费大量时间来进行大量数据采样。下面是使用RDD的分层抽样示例。
//任何键值对的RDD [(K,V)]
val数据= sc.parallelize(Seq((1,'a'),(1,'b'),(2,'c'),(2,'d'),(2,'e' ),(3,'f')))
//指定每个键所需的确切分数 val分数= Map(1-> 0.1,2-> 0.6,3-> 0.3)
//从每个阶层获取一个近似样本
valroxSample = data.sampleByKey(withReplacement = false,分数=分数)
//从每个阶层获取确切的样本
val precisionSample = data.sampleByKeyExact(withReplacement = false,分数=分数)
是否可以在不将数据转换为RDD的情况下对数据帧进行分层采样?如果是的话???