zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

spark flatmap

Spark flatMap
2023-06-13 09:11:16 时间

大家好,又见面了,我是你们的朋友全栈君。

flatMap算子,在java中,接收的参数是FlatMapFunction,我们需要自己定义FlatMapFunction的第二个泛型类型,即,代表了返回的新元素的类型 call()方法,返回的类型,不是U,而是Iterable<U>,这里的U也与第二个泛型类型相同 flatMap其实就是,接收原始RDD中的每个元素,并进行各种逻辑的计算和处理,返回可以返回多个元素

flatmap 和map的操作,map可以完成的,flatmap也可以完成,但是flatmap能完成的,map能完成吗?好像不行,比如说我要根据传进来的数据生成两个某个类的子类,那么map就无能为力了。

public static void myFlatMap(){

SparkConf conf=new SparkConf() .setMaster(“local”) .setAppName(“myFlatMap”); List<String> list=Arrays.asList(“hello 2016″,”goodbye 2015”); JavaSparkContext sc=new JavaSparkContext(conf); JavaRDD<String> listRdd=sc.parallelize(list); JavaRDD<String> listFlatMap=listRdd.flatMap(new FlatMapFunction<String, String> (){ private static final long serialVersionUID = 1L;

@SuppressWarnings(“rawtypes”) @Override public Iterable<String> call(String s) throws Exception { // TODO Auto-generated method stub return Arrays.asList(s.split(” “)); } }); listFlatMap.foreach(new VoidFunction<String>(){

@Override public void call(String s) throws Exception { // TODO Auto-generated method stub System.out.println(“s:”+s); } });

}

结算结果:

s:hello s:2016 s:goodbye s:2015

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136144.html原文链接:https://javaforall.cn