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]);
});