spark flatmap

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

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

     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.net/136144.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Django(19)QuerySet API[通俗易懂]

    Django(19)QuerySet API[通俗易懂]前言我们通常做查询操作的时候,都是通过模型名字.objects的方式进行操作。其实模型名字.objects是一个django.db.models.manager.Manager对象,而Manager

    2022年7月31日
    4
  • Redis集群搭建

    Redis集群搭建

    2021年6月15日
    112
  • winform控件之BindingNavigator

    winform控件之BindingNavigatorBindingNavigator控件可以为我们绑定的数据提供一个导航的功能,默认的工具是这个样子的,我们可以根据需求再增加功能1.BindingNavigator用法1.1界面布局界面布局如下一个BindingNavigator名为bindingNavigator1一个DataGridView名为DataGridView1两个TextBox分别为TextBox1和…

    2022年7月12日
    19
  • ping traceroute原理

    ping traceroute原理ping命令工作原理ping命令主要是用于检测网络的连通性。Ping命令发送一个ICMP请求报文给目的IP,然后目的IP回复一个ICMP报文。原理:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。因为ping命令是使用ICMP协议,…

    2022年7月21日
    12
  • 母版页中ContentPlaceHolder 控件的作用

    母版页中ContentPlaceHolder 控件的作用文章转自http://wenku.baidu.com/link?url=7sLN0ihgZQ1XfX47b_y8qbpIVjS5T75Q1xvaoyIQ6OiKIgvzyVyRccnU9e9fqoOm4DBTxNyPPIpgGlq8n5l4cePZngx1J-va9PNFmdRn2se母版页中ContentPlaceHolder控件的作用。当母版页被一个页面引用时,页面内容…

    2022年7月13日
    18
  • 基于深度学习的视频识别方法概览

    基于深度学习的视频识别方法概览来源:阿里云安全 作者:深度学习在最近十来年特别火,几乎是带动AI浪潮的最大贡献者。互联网视频在最近几年也特别火,短视频、视频直播等各种新型UGC模式牢牢抓住了用户的消费心里,成为互联网吸金的又一利器。当这两个火碰在一起,会产生什么样的化学反应呢?  不说具体的技术,先上一张福利图,该图展示了机器对一个视频的认知效果。其总红色的字表示objects,蓝色的字表示scenes

    2022年5月2日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号