数智资源网
首页 首页 大数据 大数据入门 查看内容

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

木马童年 2020-10-18 09:54 19 0

摘要Spark是一个Apache项目,它被标榜为“快如闪电的集群计算”。它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的程序在内存 ...

摘要

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

最大值最小值

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

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

预期结果:

max: 1001min: 2

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

平均值问题

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

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

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

TopN问题

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

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

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

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

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

集群计算 数据处理 Hadoop
0
为您推荐
Hadoop源码解析与实战学习视频,资源教程下载

Hadoop源码解析与实战学习视频,资源教程下载

课程名称Hadoop源码解析与实战学习视频,资源教程下载课程目录01 免费试听.doc02 免费…...

大数据开发之Hadoop工程师全套学习课程,视频资源下载

大数据开发之Hadoop工程师全套学习课程,视频资源下载

课程名称大数据开发之Hadoop工程师全套学习课程,视频资源下载课程目录大数据开发之Ha…...

徐老师大数据Spark学习视频,资源教程下载

徐老师大数据Spark学习视频,资源教程下载

课程名称徐老师大数据Spark学习视频,资源教程下载课程介绍Apache Spark 是专为大规模…...

深入浅出实战讲解-Spark框架实战 集中轰炸Spark-从入门到高级应用及优化

深入浅出实战讲解-Spark框架实战 集中轰炸Spark-从入

课程名称深入浅出实战讲解-Spark框架实战 集中轰炸Spark-从入门到高级应用及优化课程…...

北风网Spark大型项目实战138讲,资源教程下载

北风网Spark大型项目实战138讲,资源教程下载

课程名称北风网Spark大型项目实战138讲,资源教程下载课程目录001.课程介绍002.课程环…...

Hadoop&Spark企业应用实战,资源教程下载

Hadoop&Spark企业应用实战,资源教程下载

课程名称HadoopSpark企业应用实战,资源教程下载课程目录第一周:企业级Hadoop应用概…...