在大数据中,MapReduce无疑是一个绕不开的课题,Hadoop也好,Spark也罢,市面上主流的大数据技术栈大多会涉及到MapReduce。要搞清楚MapReduce的流程在很多书籍和教程中都会提到一个经典案例——词频统计。词频统计就是统计单词在文本中出现的频率,在整个统计过程中会涉及到单词的切分、映射、聚合等流程,整个流程跟MapReduce的执行流程几乎一致。本文将以图片的形式简单概述词频统计案例实现思路。
图片的思路图示分为两部分,第一部分的简易通用思路可以套入大多数编程语言中进行实现,第二部分主要针对SQL进行图示。
词频统计通用的实现思路大致为:单词切分——实现单词与出现次数的映射——单词分组(可以用判断来实现同一单词的分组)——单词的聚合(对同一单词进行出现次数的累加)
相比用编程语言进行词频统计,SQL的词频统计实现起来更加简单,但也绕不开分组与聚合的过程。