欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:961
  2. 浏览总数:11,509,444
  3. 评论:3873
  4. 分类目录:103 个
  5. 注册用户数:5853
  6. 最后更新:2018年10月17日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
大数据猿:
bigdata_ai

Spark函数讲解:collect

  将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: https://www.iteblog.com
 * 本文地址:https://www.iteblog.com/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端内存溢出问题。

本博客文章除特别声明,全部都是原创!
转载本文请加上:转载自过往记忆(https://www.iteblog.com/)
本文链接: 【Spark函数讲解:collect】(https://www.iteblog.com/archives/1282.html)
喜欢 (18)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!