您的位置:首页 > 其它

Spark函数讲解:collect

2016-05-23 09:51 246 查看
将RDD转成Scala数组,并返回。

函数原型

def collect(): Array[T]
def collect[U: ClassTag](f: PartialFunction[T, U]): RDD[U]
collect函数的定义有两种,我们最常用的是第一个。第二个函数需要我们提供一个标准的偏函数,然后保存符合的元素到MappedRDD中。

实例

scala> val one: PartialFunction[Int, String] = { case 1 => "one"; case _ => "other"}
one: PartialFunction[Int,String] = <function1>

scala> val data = sc.parallelize(List(2,3,1))
data: org.apache.spark.rdd.RDD[Int] =
    ParallelCollectionRDD[11] at parallelize at <console>:12

scala> data.collect(one).collect
res4: Array[String] = Array(other, other, one)

注意

  如果数据量比较大的时候,尽量不要使用collect函数,因为这可能导致Driver端内存溢出问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spark 函数