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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JS中判断一个对象是否为null、undefined、0

    JS中判断一个对象是否为null、undefined、0

    2021年10月31日
    143
  • Qt 编译方式之 qmake[通俗易懂]

    Qt 编译方式之 qmake[通俗易懂]作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处QMake简介Qt的帮助文档中对于qmake是这样介绍的:qmake工具有助于简化不同平台上开发项目的构建过程。它自动生成生成makefile,因此创建每个makefile只需要几行信息。您可以将qmake用于任何软件项目,无论它是否使用qt编写。qmake是Qt工具包中带的一个非常…

    2022年5月19日
    31
  • powermockito教程_SpringBoot使用Powermockito单元测试

    powermockito教程_SpringBoot使用Powermockito单元测试mockito框架上手非常简单,但是它也有弊端和局限性,不能mock静态方法、私有方法、构造方法等,但powermockito框架很好的弥补了这一缺陷。版本说明一般powermockito和mockito配合来使用,有相应的版本要求。powermockitomockito1.6.5+2.0.0-beta-2.0.42-beta1.10.191.6.41.10.8-1.10.x1.6.2+1…

    2025年7月9日
    3
  • c语言编程 sort()什么意思,void sort在C语言中什么意思?「建议收藏」

    c语言编程 sort()什么意思,void sort在C语言中什么意思?「建议收藏」void是C语言中的一个关键字,其含义因其应用形式不同,一般分为两种:void和void*void的字面意思是“无类型”,void*则为“无类型指针”,void*可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义,不妨试着定义:这行语句编译时会出错,提示“illegaluseoftype’void’”。不过,即使voida的编译不会出错,…

    2022年5月12日
    48
  • matlab实现香农编码原理_香农编码c语言实现

    matlab实现香农编码原理_香农编码c语言实现最近有个实验是用MATLAB实现香农编码的,在网上看到了别人写的程序,大部分都不支持手动输入信源,我自己就加上了几行,能够直接输入信源分布,下面是程序:pa=input(‘请输入信源分布:’)k=length(pa);   %计算信源符号个数ifmin(pa)&lt;0||max(pa)&gt;1  %判断信源概率值是否介于0到1之间  %disp([‘信源分布pa(x)=[‘,…

    2022年9月11日
    2
  • IDEA中使用eclipse快捷键「建议收藏」

    IDEA中使用eclipse快捷键「建议收藏」1.修改使用Eclipse风格的快捷键目的是习惯了使用eclipse的快捷键,在使用IDEA时不想重头记一套新的快捷键。按照下面的顺序操作File–>settings–>keymap–>在下来框中选中Eclipse选择Apply保存设置这样改完就是elipse风格的快捷方式了2.单独设置一部分比较主要的与eclipse中不一致的操作2

    2022年5月14日
    214

发表回复

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

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