Spark中Java函数的使用方法笔记

1: map 函数
map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。

2: mapPartitions函数</p>
mapPartitions是map的一个变种。map的输入函数是应用于RDD中每个元素,
而mapPartitions的输入函数是应用于每个分区,也就是把每个分区中的内容作为整体来处理的。

3: mapValues 函数
mapValues顾名思义就是输入函数应用于RDD中Kev-Value的Value,原RDD中的Key保持不变,与新的Value一起组成新的RDD中的元素。
因此,该函数只适用于元素为KV对的RDD。

4: mapPartitionsWithIndex 函数
mapPartitionsWithIndex是函数作用同mapPartitions,不过提供了两个参数,第一个参数为分区的索引。

5: flatMap 函数
与map类似,区别是原RDD中的元素经map处理后只能生成一个元素,而原RDD中的元素经flatmap处理后可生成多个元素来构建新RDD。
举例:对原RDD中的每个元素x产生y个元素(从1到y,y为元素x的值)

6、filter 函数

filter对每行数据执行过滤操作,返回true则保留,返回false则过滤该行数据

7、union函数

union操作对两个RDD数据进行合并。与SQL中的union一样

RDD如何创建
   首先创建JavaSparkContext对象实例sc

        JavaSparkContext  sc = new JavaSparkContext("local","SparkTest");

    接受2个参数:

      第一个参数表示运行方式(local、yarn-client、yarn-standalone等)

      第二个参数表示应用名字
 
  直接从集合转化 sc.parallelize(List(1,2,3,4,5,6,7,8,9,10))
  从HDFS文件转化 sc.textFile("hdfs://")
  从本地文件转化 sc.textFile("file:/")

根据文件或者集合生成RDD后,接着就可以通过RDD的Transformation操作来完成对数据的各种转化操作

        常用的map、flatMap、filter操作都是对单元素的操作

  常用的groupByKey、join都是对(key、value)类型元素操作
原文地址:https://www.cnblogs.com/wrong5566/p/7261981.html