如何用Spark解决一些经典MapReduce问题?

大数据 Spark
本文将简单介绍几个经典hadoop的mr按理用spark实现,来让大家熟悉spark的开发。

[[178228]]

Spark是一个Apache项目,它被标榜为“快如闪电的集群计算”。它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍。同时spark也让传统的map reduce job开发变得更加简单快捷。本文将简单介绍几个经典hadoop的mr按理用spark实现,来让大家熟悉spark的开发。

***值最小值

求***值最小值一直是Hadoop的经典案例,我们用Spark来实现一下,借此感受一下spark中mr的思想和实现方式。话不多说直接上code:

预期结果:

max: 1001min: 2

思路和hadoop中的mr类似,设定一个key,value为需要求***与最小值的集合,然后再groupBykey聚合在一起处理。第二个方法就更简单,性能也更好。

平均值问题

求每个key对应的平均值是常见的案例,在spark中处理类似问题常常会用到combineByKey这个函数,详细介绍请google一下用法,下面看代码:

我们让每个partiton先求出单个partition内各个key对应的所有整数的和 sum以及个数count,然后返回一个pair(sum, count)在shuffle后累加各个key对应的所有sum和count,再相除得到均值.

TopN问题

Top n问题同样也是hadoop种体现mr思想的经典案例,那么在spark中如何方便快捷的解决呢:

思路很简单,把数据groupBykey以后按key形成分组然后取每个分组***的2个。预期结果:

以上简单介绍了一下hadoop中常见的3个案例在spark中的实现。如果读者们已经接触过或者写过一些hadoop的mapreduce job,那么会不会觉得在spark中写起来方便快捷很多呢。

责任编辑:武晓燕 来源: 36大数据
相关推荐

2009-08-06 16:01:30

C#接口成员

2010-05-24 18:22:36

jsp MySQL

2015-05-25 11:12:02

程序猿个个经典

2017-10-13 12:23:17

苹果

2011-04-02 10:45:37

IPv6

2015-08-24 09:26:18

Java内存问题见解

2019-11-06 14:47:13

医疗人工智能AI

2009-11-30 13:51:28

VS2003 Runt

2010-05-25 12:49:06

IPv6安装配置问题

2009-06-04 16:28:43

EJB常见问题

2017-05-23 14:33:46

简历求职前端开发

2018-05-17 14:52:11

Javascripthtmlcss

2016-10-18 22:10:02

HTTP推送HTML

2021-04-19 17:25:08

Kubernetes组件网络

2009-06-22 15:36:00

如何学好java

2020-05-19 08:06:57

代码重构代码开发

2022-01-12 17:35:50

Linux命令命令行工具

2009-06-12 10:25:42

Webservices

2018-06-12 15:39:41

容器部署云平台

2009-11-25 09:23:47

PHP引用&符号
点赞
收藏

51CTO技术栈公众号