importorg.apache.spark.SparkConf;importorg.apache.spark.api.java.JavaRDD;importorg.apache.spark.api.java.JavaSparkContext;importorg.apache.spark.api.java.function.FlatMapFunction;importorg.apache.spark.api.java.function.Function;importorg.apache.spark.api.java.function.VoidFunction;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Iterator;importjava.util.List;class Map_test implements Function{
@Overridepublic String call(String s) throwsException{//方式三
return s+"方式三";
}
}public classjava_spark_function {public static voidmain(String[] args) {
SparkConf conf= new SparkConf().setMaster("local[*]").setAppName("spark_java_function");
JavaSparkContext sc= newJavaSparkContext(conf);
List list = Arrays.asList("a","b","c","d");
JavaRDD parallelize =sc.parallelize(list);
parallelize.map(//方式一
x->x+"方式一").map(//方式二
new Function() {
@Overridepublic String call(String s) throwsException {return s+"方式二";
}
}
).map(newMap_test()
).collect().forEach(x->System.out.println(x));
parallelize.flatMap(new FlatMapFunction() {
@Overridepublic Iterator call(String s) throwsException {
List l = newArrayList();if(s=="a"){
l.add(1);
}else if(s.toString().equals("b")){
l.add(2);
}else{
l.add(3);
}returnl.iterator();
}
}
).filter(new Function() {
@Overridepublic Boolean call(Integer s) throwsException {if(s<3){return true;
}return false;
}
}
).foreach(new VoidFunction() {
@Overridepublic void call(Integer integer) throwsException {
System.out.println("输出的结果"+integer);
}
}
);
}
}