整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

16.5.2操作

hadoop 花牛 19℃ 0评论

如前所述,Cascading通过引入一些其他操作而脱离了 MapReduce模式,这 些操作或应用于单个元组,或应用于元组分组(16-15)

 image.png

图16-15 操作原型

• Function Function作用于单个的输入元组,对每个输人,它可 能返回〇或多个输出元组。Function操作供Each类型的管道 使用。

• Filter Filter是一种特殊的函数,它的返回值是boolean(布尔值,用于指示是否把当前的元组从元组流中删除。虽然定义一个 Function操作也能实现这一目的,但是Filter是为实现这一目的 而优化过的操作,并且很多过滤器能够通过逻辑运算符(And、 OrXorNot)分组,可以快速创建更复杂的过滤操作。

• Aggregator Aggregator对一组元组执行某种操作,这呰分组元 组是通过一组共同字段分组得到的。比如,字段“last-name”值相 同的元组。常见的Aggregator方法是Sum(求和)Count(计数), Average(均值)Max(最大)Min(最小)

• Buffer BufferAggregator操作类似,不同的是,它被优化

用来充当一个“滑动窗口”在一次分组中扫描所有的元组。当开发 者需要有效地为一组排序的元组插入遗漏的值时,或计算动态均值 的时候,这个操作非常有用。通常,处理元组分组数据的时候, Aggregator也是一个可选的操作,因为很多Aggregator能够有 效地链接起来工作,但有时,Buffer才是处理这种作业的最佳工具。

管道装配线创建的时候,这些操作便绑定到各管道(图16-16)

 image.png

图16-16.操作装配线

Each和Every类型的管道提供了 种简单的元组选择机制,它们可以选择 一些或所有的输入元组,然后把这些选择的数据传送给它的子操作。并且 我们有一个简单的机制把这些操作的结果和原来的输人元组进行合并,然 后产生输出元组。这里并不详细说明这个过程,它使得每个操作只关心参数指定的元组值和字段,而不是当前输入元组的整个字段集。其次,操作 在不同应用程序之间可重用,这点和Jave方法重用的方式相同。

例如,在 Java 中,声明一个方法 concatenatefString first, String second),比直接定义concatenate(Person person)更抽象。第二个方法的 定义,concatenate()函数必须“了解” Person对象;而第一个方法的定义 并不清楚数据来自哪里。Cascading操作展现了同样的抽象能力。

转载请注明:全栈大数据 » 16.5.2操作

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址