前一篇文章中已经完成了Scala开发环境的搭建,并且在IDEA中安装好了Scala 插件。本文将进行词频统计Spark应用的Scala版本开发。
一、创建新的Maven模块
在现有的父项目中,创建一个新的scala 模块,用于编写词频统计Spark应用,如图所示。选择左侧的Maven(或者下面的Scala),点击【Next】按钮。
然后,输入模块名称(Name):ScalaWordCount,如图所示,点击【Finish】按钮就创建好了。
二、将scala框架添加到项目
在IDEA启动后进入的界面中,可以看到界面左侧的项目界面,已经有一个名称为WordCount的工程。请在该工程名称上右键单击,在弹出的菜单中,选择Add Framework Surport 。
在弹出的Add Frameworks Support 窗口中,左侧有一排可勾选项,找到scala,勾选即可。
三、添加spare-core依赖包
在ScalaWordCount 模块的pom.xml 文件中,添加spare-core依赖项,如下所示:
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>3.2.1</version></dependency>
{!– PGC_COLUMN –}
<version>3.2.1</version></dependency>
注意:选择的scala版本,需要和本地环境中的scala 版本保持一致。如果不一致,在编译的时候会报错。
四、创建Scala应用
在ScalaWordCount 子模块中,新建包名:com.rickie.spark3,如图所示。然后,创建一个新的Scala Class。
Name 中输入ScalaWordCount,类型选择Object。
Scala类中没有Java那样的静态成员。Scala使用 object 关键字定义单例对象(Singleton Object)。单例对象的定义和类定义类似,只是用object关键字替换了class关键字。
如果对Scala 语句有学习兴趣,可以访问《Scala开发快速入门》技术专栏。该专栏适合想要快速入门Scala语言,基于Spark/Flink进行大数据开发的读者。
ScalaWordCount 的完整代码如下所示:
package com.rickie.spark3import org.apache.spark.{SparkConf, SparkContext}object ScalaWordCount { def main(args: Array[String]): Unit = { val inputFile = \"./data/wordcount.txt\" val conf = new SparkConf().setAppName(\"Scala Word Count\").setMaster(\"local\") val sc = new SparkContext(conf) val textFile = sc.textFile(inputFile).cache() val wordCount = textFile.flatMap(line => line.split(\"s \")) .map(word => (word, 1)) .reduceByKey((x, y) => x y) wordCount.foreach(println) sc.stop() }}
和之前Java版本的代码相比,代码简洁很多。
五、启动ScalaWordCount
启动ScalaWordCount中的main()方法,正常运行之后,在Console控制台可以看到如下输出结果:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。