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

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

Spark 实现 WordCount 单词统计

1 方式一

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

在这里插入图片描述

编写测试数据

在这里插入图片描述

Hello World
Hello World
Hello Spark
Hello Spark

代码部分:

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

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 的环境变量就可以了
在这里插入图片描述

再次运行,结果就很清晰了
在这里插入图片描述

2 方式二

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

在这里插入图片描述
测试数据还是和上面一样

代码部分:
在这里插入图片描述在这里插入图片描述

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

在这里插入图片描述

3 方式三

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

在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超周到的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值