spark flatmap
大家好,又见面了,我是你们的朋友全栈君。
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
相关文章
- 【Spark Streaming】Spark Streaming的使用
- Spark pool_spark docker
- hadoop+spark+zookeeper+hive的大数据分布式集群搭建
- 快手一面:讲一讲 Hadoop、Hive、Spark 之间的关系?
- Eclipse下Spark+ScalaIDE开发环境部署
- Spark SQL报错:org.apache.spark.sql.catalyst.errors.package$TreeNodeException 排查记录
- Spark SQL发展史
- Spark SQL实战(06)-RDD与DataFrame的互操作
- Spark SQL实战(07)-Data Sources
- Spark项目之电商用户行为分析大数据平台之(八)需求分析详解大数据
- Spark项目之电商用户行为分析大数据平台之(四)离线数据采集详解大数据
- Spark源码分析之spark-submit详解大数据
- Spark-Sql源码解析之六 PrepareForExecution: spark plan -> executed Plan详解大数据
- Spark-Sql源码解析之五 Spark Planner:optimized logical plan –> spark plan详解大数据
- 用Spark轻松写入Redis(spark写入redis)
- Spark与MySQL的完美结合:数据处理与存储的高效实践(sparkmysql)
- 使用Spark进行Redis数据读取(spark 读redis)
- 使用Spark和Redis提升计算性能(spark和redis)
- Spark与Redis的联合探索(spark加redis)