天天看点

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计

前言:本文学习自尚硅谷的 Spark 教程

文章目录

  • ​​Spark 实现 WordCount 单词统计​​
  • ​​1 方式一​​
  • ​​2 方式二​​
  • ​​3 方式三​​

Spark 实现 WordCount 单词统计

1 方式一

如下图所示,先拆分出一个个单词,再按类分组,再统计出每类中单词个数。

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计

编写测试数据

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计
Hello World
Hello World      
Hello Spark
Hello Spark      

代码部分:

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计
【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计
【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计

虽然当前这个程序运行没什么问题,但是一大堆爆红看着难受,这里可以自定义一下 log 日志配置

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计
log4j.rootCategory=ERROR, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd 
HH:mm:ss} %p %c{1}: %m%n
# Set the default spark-shell log level to ERROR. When running the spark-shell,
the
# log level for this class is used to overwrite the root logger's log level, so
that
# the user can have different defaults for the shell and regular Spark apps.
log4j.logger.org.apache.spark.repl.Main=ERROR
# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark_project.jetty=ERROR
log4j.logger.org.spark_project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=ERROR
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=ERROR
log4j.logger.org.apache.parquet=ERROR
log4j.logger.parquet=ERROR
# SPARK-9183: Settings to avoid annoying messages when looking up nonexistent
UDFs in SparkSQL with Hive support
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR      

然后再配置一下 Hadoop 的环境变量就可以了

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计

再次运行,结果就很清晰了

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计

2 方式二

如下图所示,先拆分出一个个单词,并携带数量1,再按类聚合相加数量值

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计

测试数据还是和上面一样代码部分:

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计
【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计

还需要再配一次当前应用程序的参数环境变量

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计

3 方式三

如下图所示,先拆分出一个个单词,并携带数量1,之后用 reduceBykey 方法将“方法二”中的分组和聚合直接和为一个操作。

【大数据开发 Spark】第三篇:三种方式实现 WordCount 单词统计