Apache Spark:RDD动作

count :计数

使用count成员函数获得RDD对象的成员总数,返回值为长整型。

语法

def count(): Long

返回值

长整型,表示成员总数量。

示例

下面的示例返回文件的总行数(记录数):

scala> textFile.count() 
res0: Long = 126

使用RDD的count方法获得记录总数。

top :前N个记录

使用top成员函数获得RDD中的前N个记录,可以指定一个排序函数进行排序比较。 如果不指定排序函数,那么使用默认的Ascii码序进行记录排序。

语法

def top(num: Int)(implicit ord: Ordering[T]): Array[T]

参数

  • num : Int , 要返回的记录数量
  • ord : Ordering[T] , 排序函数

返回值

包含前N个记录的数组,记录类型为T。

示例

下面的示例返回使用默认排序后的头两个记录

scala> textFile.top(2)
res28:Array[String] = Array(your original work... ,you agree to...)

使用RDD的top方法获得排序后的前N条记录。

take:无序采样

使用take成员函数获得指定数量的记录,返回一个数组。与top不同,take在提取记录 前不进行排序,它仅仅逐分区地提取够指定数量的记录就返回结果。可以将take方法 视为对RDD对象的无序采样。

语法

def take(num: Int): Array[T]

参数 num : Int , 要获取的记录数量

返回值

包含指定数量记录的数组,记录类型为T。

示例

下面的示例返回文件中的两行(两个成员):

scala> textFile.take(2)
res1: Array[String] = Array(# Apache Spark,"")

使用RDD的take方法获得指定数量的记录。

first : 取第一个记录

使用first成员函数获得RDD中的第一个记录。

语法

def first(): T

示例

下面的示例返回文件的第一行(RDD的第一个记录):

scala> textFile.first()
res1: String = # Apache Spark 

使用RDD的first方法获得第一条记录。不过,没有last方法!

max : 取值最大的记录

使用max成员函数获得值最大的记录,可以指定一个排序函数进行排序比较。默认使用 Ascii码序进行排序。

语法

def max()(implicit ord: Ordering[T]): T

参数 ord : Ordering[T] , 排序函数

示例

下面的示例按字符串比较顺序找出最大的行记录:

scala> textFile.max()
res10: String = your original work and that you license the ...

使用RDD的max方法获得最大的记录!

min : 取值最小的记录

使用min成员函数获得值最小的记录,可以指定一个排序函数进行排序比较。默认使用 Ascii码序进行排序。

语法

def min()(implicit ord: Ordering[T]): T

参数

ord : Ordering[T] , 排序函数

示例

下面的示例按字符串比较顺序找出最小的行记录:

scala> textFile.min()
res 20: String = ""

使用RDD的min方法获得最小的记录!

reduce : 规约RDD

使用reduce成员函数对RDD进行规约操作,必须指定一个函数指定规约行为。

语法

def reduce(f: (T, T) => T): T

参数 f : 规约函数 , 两个参数分别代表RDD中的两个记录,返回值被RDD用来进行递归计算。

示例

下面的示例使用匿名函数,将所有的记录连接起来构成一个字符串:

scala> textFile.reduce((a,b)=>a+b)
res60:String = #Apache SparkSpake is a fast...

使用RDD的reduce方法进行聚合!

collect : 收集全部记录

使用collect成员函数获得RDD中的所有记录,返回一个数组。collect方法 可以视为对RDD对象的一个全采样。

语法

def collect(): Array[T]

示例

下面的示例返回RDD中的所有记录:

scala> textFile.collect()
res10: Array[String] = Array(# Apache Spark, "", Spark is a fast ...)

使用RDD的collect方法获得全部记录!

全部评论(0)