1、spark 的JavaRDD使用map、flatmap、filter等算子时,统一需要implement接口 org.apache.spark.api.java.function.Function
使用方法:
JavaRDD<CmaCoreMongoSpark> cma = cmaMongo
.filter(new FilterCnMedicalPaperFunc())
.filter(new TimeFilterFunc(startTime, endTime))
.map(new MapCnMedicalPaperFunc());
2、spark的Dataset<?>
使用map时需要implement接口 org.apache.spark.api.java.function.MapFunction
使用flatmap需要implement接口 org.apache.spark.api.java.function.FlatMapFunction
…
实现不同的接口,但命名大概就是算子名称+Function
使用方法(涉及到?对象类型的转化,map需要两个参数,一个转化函数类、一个转化的javaBean类型的Encoder):
Dataset<CnStandardJournalInfoSpark> journal = df.map(
new CnJournalFunc(), Encoders.bean(CnStandardJournalInfoSpark.class)
);