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)
上一篇 2022年5月4日 上午11:20
下一篇 2022年5月4日 上午11:20


相关推荐

  • node环境变量配置,npm环境变量配置

    node环境变量配置,npm环境变量配置引言:很久没有在windows上配过node,记得以前node环境变量是要加NODE_PATH到用户变量,再在系统变量引入NODE_PATH的,而npminstall的全局包目录会存放在C:/Users[用户]/administrator[你的计算机名字]/AppData/Roaming/npm目录下,而现在貌似有更高级的做法!传统方法总结:npm包全局目录:C:/Use…

    2022年4月27日
    31
  • 华为手机也能养虾了!华为小艺新增OpenClaw模式,对标miclaw

    华为手机也能养虾了!华为小艺新增OpenClaw模式,对标miclaw

    2026年3月12日
    3
  • python编写手机app_手机学python的app

    python编写手机app_手机学python的app用程序控制手机,再也不用自己去做重复枯燥的任务了

    2022年8月12日
    9
  • 什么是python标识符?_python语言正确的标识符

    什么是python标识符?_python语言正确的标识符简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。Python中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:标识符是由字符(A~Z和a~z)、下划线和数字组成,但第一个字符不能是数字。标识符不能和Python中的保留字相同。有关保留字,后续章节会详细介绍。Python中的标识符中,不能包含空格、@、%以及$等特殊字符。例如,下面所列举的标识符是合法的:UserIDnamemode12

    2025年10月9日
    3
  • smarty怎么用_item怎么用

    smarty怎么用_item怎么用1、简介含义:Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来。环境需求:PHP5.2或者更高版本我使用的环境是:PHP5.

    2022年8月5日
    8
  • readprocessmemory函数分析_max函数用法

    readprocessmemory函数分析_max函数用法函数功能描述:该函数用来读取指定进程的空间的数据,此空间必须是可以访问的,否则读取操作会失败!函数原型BOOLReadProcessMemory(  HANDLEhProcess,  //目标进程句柄  LPCVOIDlpBaseAddress,                    //读取数据的起始地址  LPVOIDlpBuffer,  //存放数据的缓存区地址 

    2026年4月17日
    3

发表回复

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

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