构建倒排索引是一个经典的大数据问题,为了简化该问题,我们可以假设输入是一个包含大量文本文件的目录,输出是每个词对应的倒排索引。
相比于MapReduce,采用spark解决问题则简单得多:用户无需受限于(MapReduce中的)Mapper、Combiner和Reducer等组件要求的固定表达方式,而只需将解决方案翻译成Spark提供的丰富算子即可。总结起来,用Spark解决问题可以分为以下几个步骤:
处理步骤1、读取自定目录下所有文本文件列表,并通过parallelize算子将文件划分成K份,每份交给一个任务处理。
2、每个任务按照以下流程依次处理分配到的文件:读取文件、分词、统计词在该文件中出现的次数。
3、按照单词进行规约(使用reduceByKey算子),将同一单词在各文件中出现的次数信息连接(join)起来,并写入最终输出目录中。
网友评论