1.项目结构
2.单词文档(data/words)
Kobe James Jordan Pual
Kobe Kobe James Jordan Jordan
Kobe James Jordan
Kobe Pual Pual
3.导入Spark依赖
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
4.源码计算(WordCountByScala)
import org.apache.spark.{SparkConf, SparkContext}
/**
* @Author yqq
* @Date 2021/12/06 20:09
* @Version 1.0
*/
object WordCountByScala {
/**
* SparkConf 是Spark的配置,可以设置:
* 1).Spark运行模式
* local:本地运行模式,多用于本地使用eclipse | IDEA 测试代码。
* yarn: hadoop生态圈中的资源调度框架,Spark可以基于Yarn进行调度资源
* standalone:Spark自带的资源调度框架,支持分布式搭建,spark可以基于自带的资源调度框架来进行调度。
* mesos:资源调度框架。
* k8s:虚拟化的方式运行。
*
* 2).可以设置在Spark WEBUI中展示的Spark Application的名称
* 3).可以设置运行的资源情况
* 主要的资源包含core 和内存
*/
def main(args: Array[String]): Unit = {
//初始化spark的上下文
/**
* SparkContext 是通往Spark集群的唯一通道
*/
val context = new SparkContext(
new SparkConf()
.setAppName("scala-wc")
.setMaster("local")
)
//读取数据
val value = context.textFile("data/words")
.flatMap(_.split(" "))
.map((_, 1))
.reduceByKey(_ + _)
value.foreach(println)
}
}