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

如何用Spark处理一些经典MapReduce问题?(spark与mapreduce)  Spark MapReduce 第1张

Spark是一个Apache项目,它被标榜为“快如闪电的集群核算”。它具有一个昌盛的开源社区,并且是现在最活泼的Apache项目。Spark供给了一个更快、更通用的数据处理渠道。和Hadoop比较,Spark能够让你的程序在内存中运行时速度提高100倍,或许在磁盘上运行时速度提高10倍。一起Spark也让传统的map reduce job开发变得愈加简略方便。本文将简略介绍几个经典hadoop的mr按理用spark完成,来让咱们了解spark的开发。

***值最小值

求***值最小值一直是Hadoop的经典事例,咱们用Spark来完成一下,借此感受一下spark中mr的思维和完成办法。话不多说直接上code:

如何用Spark处理一些经典MapReduce问题?(spark与mapreduce)  Spark MapReduce 第2张

预期成果:

max: 1001min: 2

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

平均值问题

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

如何用Spark处理一些经典MapReduce问题?(spark与mapreduce)  Spark MapReduce 第3张

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

TopN问题

Top n问题相同也是hadoop种表现mr思维的经典事例,那么在spark中怎么方便方便的处理呢:

如何用Spark处理一些经典MapReduce问题?(spark与mapreduce)  Spark MapReduce 第4张

思路很简略,把数据groupBykey今后按key构成分组然后取每个分组***的2个。预期成果:

如何用Spark处理一些经典MapReduce问题?(spark与mapreduce)  Spark MapReduce 第5张

以上简略介绍了一下hadoop中常见的3个事例在spark中的完成。假如读者们现已触摸过或许写过一些hadoop的MapReduce job,那么会不会觉得在spark中写起来方便方便许多呢。

转载请说明出处
知优网 » 如何用Spark处理一些经典MapReduce问题?(spark与mapreduce)

发表评论

您需要后才能发表评论