spark集中取数方式的区别collect()_take()_foreach()

spark集中取数方式的区别

RDD 的一些行动操作会以普通集合或者值的形式将 RDD 的部分或全部数据返回驱动器程
序中。
把数据返回驱动器程序中最简单、最常见的操作是 collect(),它会将整个 RDD 的内容返
回。
collect() 通常在单元测试中使用,因为此时 RDD 的整个内容不会很大,collect() 要求所有数据都必须能一同放入单台机器的内存中。

take(n) 返回 RDD 中的 n 个元素,并且尝试只访问尽量少的分区,因此该操作会得到一个
不均衡的集合。需要注意的是,这些操作返回元素的顺序与你预期的可能不一样。

这些操作对于单元测试和快速调试都很有用,但是在处理大规模数据时会遇到瓶颈。
如果为数据定义了顺序,就可以使用 top() 从 RDD 中获取前几个元素。top() 会使用数据
的默认顺序,但我们也可以提供自己的比较函数,来提取前几个元素。

有时需要在驱动器程序中对我们的数据进行采样。takeSample(withReplacement, num, 
seed) 函数可以让我们从数据中获取一个采样,并指定是否替换。

有时我们会对 RDD 中的所有元素应用一个行动操作,但是不把任何结果返回到驱动器程
序中,这也是有用的。比如可以用 JSON 格式把数据发送到一个网络服务器上,或者把数
据存到数据库中。不论哪种情况,都可以使用 

foreach() 行动操作来对 RDD 中的每个元素进行操作,而不需要把 RDD 发回本地。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值