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)
}
}