大数据处理流水线

大数据处理流水线:一种数据流方法

看完本文,不妨回头看看这些要求都做到了吗:
  • 理解数据流及其在数据科学中扮演的角色
  • 用实例解释‘split-do-merge’,一种大数据流水线
  • 给出‘data parallel’的定义
  • 列举大数据流水线中常见的变换
  • 列举常见聚集函数

流水线概念

大多数大数据应用是由一组陆续执行的操作组成的,这组操作成为流水线。数据沿途经过多种转化,在这些操作间流动。所以要理解大数据处理过程,必须先理解数据流。

考虑另一篇关于MapReduce的文章中的WordCount实例,MapRedcue的过程可以总结如下图:

虽然MapReduce已经代表了一批应用程序,但这还不够,需要再进行抽象,提高一个层次,可以总结出‘ split-do-merge’模型。
首先数据被分成若干部分,分割后的数据经过一组用户定义的函数来执行一些操作,从统计方法到机器学习,都可以。根据应用程序的数据处理需求,‘do’操作可以不同,也可以组成一条操作链。最后结果会被用一种合并方法进行结合,如Reduce。
上述一组大数据处理过程也称为大数据PipeLine,流水线。Pipe这个词最早出现在UNIX操作系统中,一个程序的输出作为另一个程序的输入。对大数据处理过程而言,在流水线中每一步的并行问题主要就是 数据并行问题(data parallelism)。我们可以将数据并行简单地定义为对同一数据集的不同部分同时运行相同的函数。要达到这种数据并行,我们必须决定每步个并行计算的数据粒度,如WordCount中的Map的数据粒度是一行,shuffle and sort的数据粒度是单个键值对。你会发现每一步数据集的大小都减小了。

常见数据变换

变换是改变数据形状的工具。
Map
map是最常见的数据变换,map对数据集中的每一个元素执行一样的操作,如都加1。
Reduce
reduce对具有某种共性的对象总体地执行某种操作,如求和。
Cross/Cartesian
cross就是求笛卡尔积。
Match/Join
match就是数据库中的内连接(inner-join)。

Co-Group
co-group是将两个数据集合成一个数据集,然后将key相同的元素分作一组。


Filter
filter即过滤,相当于数据库中的where,根据一个条件筛选,如X%2==0。

聚集函数

聚集函数把所有相关的数据元素都考虑进来。设X是数据集,将X中的所有数据元素x都考虑进来的变化f称为聚集函数。如求和、分组求和、求平均值、分组求平均值等都是聚合函数。 集合操作交并差一定意义上也可以称作聚集函数。聚集函数往往压缩了数据量。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值