分别采用匿名类和lambda来实现spark API的接口

来源:互联网 发布:linux中的telnet命令 编辑:程序博客网 时间:2024/06/03 20:54
SparkConf conf = new SparkConf().setAppName("SparkSample").setMaster("local[*]");JavaSparkContext sc = new JavaSparkContext(conf);SQLContext sqlContext = new SQLContext(sc);JavaRDD<String> lines = sc.textFile("D:\\eclipse_1\\sparkTest\\src\\main\\java\\source\\idWordsFile.txt");
JavaPairRDD<String, String> countss = lines.filter(x -> x!="")    .mapToPair(PairFunction<String,K2,V2>) 
    /* 对于这段话的意思是mapToPair 方法里面接受一个接口叫PairFunction方法,
                             这个PairFunction 接受三个参数,String,和K2,V2,对于K2和V2可以自己设定类型。     其中第一个String为输入类型,K2和V2为返回值的类型。     下面是两个分别用匿名类实现这个接口和用lambda实现这个方法的例子
    */

//用匿名类 实现该接口方法:JavaPairRDD<String,String> counts = lines.filter(x -> x!="").mapToPair(new PairFunction<String ,String,String>(){public Tuple2<String, String> call(String line) throws Exception {    String[] splited =  line.split(":");    return new Tuple2<String,String>(splited[0],splited[1]);   }});//用lambda实现该接口方法:JavaPairRDD<String, String> countss = lines.filter(x -> x!="") // 对于lambda ->前面的内容为接口方法的输入的参数, ->后面的内容为需要返回的内容    .mapToPair(w ->     {    String[] splited = w.split(":");    return new Tuple2<String,String>(splited[0],splited[1]);   });


 
阅读全文
0 0