sample 和takesample 区别
sample 参数中获取的是数据的比例
takesample 参数中 获取的是取样的个数
代码
ArrayList<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list1.add(3);
list1.add(6);
JavaRDD<Integer> parallelize = sc.parallelize(list1);
parallelize.sample(false, 0.5).foreach(new VoidFunction<Integer>() {
@Override
public void call(Integer integer) throws Exception {
System.out.println(integer);
}
});
List<Integer> integers = parallelize.takeSample(false, 3);
for (Integer integer: integers){
System.out.println(integer);
}
结果1:
3
4
6
结果2:
1
3
6