【Spark开发必备技能】6-2-RDD/Dataset/DataFrame-RDD常用方法

目录

1、RDD方法综述

2、RDD创建

3、transformations转换方法

4、actions操作方法

5、RDD持久化方法

6、共享变量Broadcast和Accumulator

7、RDD转DataFrame


1、RDD方法综述

    a、RDD共包含两种计算方式,一种是transformations转换,一种是actions操作,每种计算方式包含一些常用的方法。

        注意:Transformations转换是Lazy的,也就是说从一个RDD转换生成另一个RDD的操作不是马上执行,Spark在遇到Transformations转换时只会记录需要这样的转换,并不会去执行,需要等到有Actions操作的时候才会真正启动计算过程进行计算。写代码的时候,一定要特别注意,基本是新手必踩的坑!!!

    b、如果一个RDD需要多次调用,还可以使用持久化方法,将RDD持久化到内存或者磁盘中,该RDD再次调用时,就无需重复计算。 

    c、如果想在Driver和Executors之间共享大容量的变量或者使用累加器,可以采用Broadcast和Accumulator。

2、RDD创建

    具体步骤如下:

        a、新建Maven工程,在pom.xml文件中引入Spark的依赖包,以便能使用Spark提供的功能

             

        b、初始化入口对象

             #1)初始化SparkConf对象,SparkConf包含了Spark集群配置的各种参数。

             #2)基于SparkConf对象初始化SparkSession对象。

             #3)基于SparkSession对象创建JavaSparkContext对象,用于与集群资源管理器做交互

             

        c、创建RDD

             共两种方式

              #1) 通过列表创建RDD

              #2) 通过HDFS/AFS路径创建RDD

                                                       

3、transformations转换方法

    a、函数体采用Lambda表达式

        RDD的转换方法涉及的func函数操作可以采用Lambda表达式,写法便捷。Lambda表达式是Java SE 8中一个重要的新特性。

        Lambda表达式的格式如下:

            #1) 单个参数

            格式:参数 -> { 处理代码块 }    

            #2)多个参数

            格式:(参数1, 参数2, 参数...) -> { 处理代码块 }  

        从下图可以看出,采用lambda表达式代码比以往的匿名函数的方式,写法更简洁

          

    b、常用方法

    我们创建两个RDD (firstRDD 和 secondRDD)作为示例,讲解常用的转换方法。

    

 

方法名 方法描述 代码示例
flatMap(func)

实现一行转多行。

作用于RDD的每一行,产出新的RDD每行为迭代器的一个元素。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值