搭建spark本地的运行环境
下载spark的压缩包
https://archive.apache.org/dist/spark/spark-3.0.0/spark-3.0.0-bin-hadoop3.2.tgz
解压下载好的spark,找到spark的路径,将jars文件夹下的jar包导入
导入之后就能使用spark了
WordCount编程
import org.apache.spark.{SparkConf, SparkContext}
/**
1. @author 公羽
2. @time : 2021/5/9 16:46
3. @File : learn2.java
*/
object learn2 {
def main(args: Array[String]): Unit = {
val config = new SparkConf().setAppName("test1").setMaster("local[6]").set("spark.driver.host","localhost")
val sc = new SparkContext(config)
val rdd1 = sc.textFile("C:\\Users\\lenovo\\Desktop\\test.txt")
// flatMap[U: ClassTag](f: T => TraversableOnce[U]):
// RDD[U]
val rdd2 = rdd1.flatMap(x => x.split(",")).map(line => line -> 1).reduceByKey(_ + _)
rdd2.foreach(lines => println(lines))
}
}
原理分析
基本流程:
- 先是textFile()读取到数据
- 将数据输送给flatMap()进行扁平化处理
- 处理完后再将数据输送给map()进行二元组化
- 最后根据reduceBykey()进行组合
下一步都会用到上一步的结果