package com.bj.scalacode
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
/**
* Spark 中 map 与 flatMap 的区别
* 总结:
*
* - Spark 中 map函数会对每一条输入进行指定的操作,然后为每一条输入返回一个对象;
*
* - Spark 中 flatMap函数则是两个操作的集合——正是“先映射后扁平化”,最后将所有对象合并为一个对象
*
*/
object MapAndFlatmap {
def main(args: Array[String]): Unit = {
//1.配置SparkConf
val conf=new SparkConf().setMaster("local[*]").setAppName("MapAndFlatmap")
//2.创建SparkSession
val spark=SparkSession.builder().config(conf).getOrCreate()
//3.获取SparkSession的SparkContext
val sc=spark.sparkContext
//设置spark程序运行的日志级别为warn,以方便查看程序的运行
sc.setLogLevel("warn")
//4.把需要用的数据加载进来转换为RDD
val textFile=sc.textFile("./data/test1.txt")
val mapResult = textFile.map(line=>line.split("\\s+"))
val flatmapResult=textFile.flatMap(line=>line.split("\\s+"))
mapResult.foreach(println)
println("+++++++++++++++++++++")
flatmapResult.foreach(println)
}
}