Gar*_*aso 4 scala apache-spark
看到strifiedSampling上贴了很多问题,但都没有回答我的问题,所以问为“新帖”,希望能得到一些更新。
我注意到 spark API:sampleBy() 返回的结果存在差异,这对于小型数据帧没有太大意义,但对于大型数据帧(> 1000 行)更为明显
示例代码:
val inputRDD:RDD[(Any,Row)] =df.rdd.keyBy(x=> x.get(0))
val keyCount = inputRDD.countByKey()
val sampleFractions = keyCount.map(x => (x._1,{(?? x._2.toDouble*sampleSize)/(totalCount*100)})).toMap
val sampleDF = df.stat.sampleBy(cols(0),fractions = sampleFractions,seed = 11L)
Run Code Online (Sandbox Code Playgroud)
数据帧总数:200 键数:A:16 B:91 C:54 D:39
分数:地图(A -> 0.08,B -> 0.455,C -> 0.27,D -> 0.195)
我只得到 69 行作为 df.stat.sampleBy() 的输出,尽管我已经指定了预期的样本大小是 100,当然这被指定为激发 API 的分数。
谢谢
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |