import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import java.util.Arrays;
import java.util.List;
/**
* sample(withReplacement,fraction,seed) 算子
* 对RDD中的数据进行随机采样,会有误差。
* 第一个参数:boolean类型,表示产生的样本是否可以重复:false不重复,也就是不放回的取;true可以重复,也就是放回的取。
* 第二个参数:代表取样的比例。
* 第三个参数:代表一个随机数种子,就是抽样算法的初始值。
*
*/
public class SampleDemo {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setMaster("local").setAppName("spark");
JavaSparkContext sc = new JavaSparkContext(conf);
List list = Arrays.asList("ziang","tianyu","zikun","changjun","wenlong","zhangpeng","zelang");
JavaRDD javaRDD = sc.parallelize(list);
//sample算子:放回的取样
JavaRDD javaRDD1 = javaRDD.sample(true,1);
//sample算子:不放回的取样
JavaRDD javaRDD2 = javaRDD.sample(false,1);
System.err.println(javaRDD1.collect());
System.err.println(javaRDD2.collect());
}
}