将RDD转成Scala数组,并返回。
函数原型
def collect(): Array[T] def collect[U: ClassTag](f: PartialFunction[T, U]): RDD[U]
collect函数的定义有两种,我们最常用的是第一个。第二个函数需要我们提供一个标准的偏函数,然后保存符合的元素到MappedRDD中。
实例
/** * User: 过往记忆 * Date: 15-03-11 * Time: 下午08:24 * bolg: * 本文地址:/archives/1282 * 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,大量的干货 * 过往记忆博客微信公共帐号:iteblog_hadoop */ 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函数讲解:collect】(https://www.iteblog.com/archives/1282.html)