大家好,又见面了,我是你们的朋友全栈君。
flatmap
flatmap 简单用法
def main(args: Array[String]): Unit = {
//设置log级别
Logger.getLogger("org").setLevel(Level.WARN)
val conf = new SparkConf().setAppName("WordCountDemo").setMaster("local")
val sc = new SparkContext(conf)
sc.textFile("hdfs://hadoop001:9000/in/word")
.flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect().foreach(println(_))
sc.stop()
}
flatmap 复杂用法
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.config("spark.executor.memory", "2g")
.appName("WordCount")
.master("local[6]")
.getOrCreate()
val sc = spark.sparkContext
val array = Array((1,"a b c d"),(2,"a b c"),(3,"a b"))
/** * 第一种写法 */
val rdd = sc.parallelize(array)
rdd.flatMap(x => {
val sub = ArrayBuffer.empty[(Int, String)]
x._2.split(" ").foreach(e => {
sub.+=((x._1, e))
})
sub.iterator
}).collect().foreach(println)
/** * 第二种写法 */
//rdd.flatMap(x=> x._2.split(" ").map(y =>(x._1,y))).collect().foreach(println)
sc.stop()
spark.close()
}
结果
(1,a)
(1,b)
(1,c)
(1,d)
(2,a)
(2,b)
(2,c)
(3,a)
(3,b)
一块石头一半做成了佛像,一半做成了台阶。台阶不服气的问佛:我们本是一块石头,凭什么人们都踩着我,而去朝拜你呢?佛说: 因为你只挨了一刀,而我却经历了千刀万剐,千锤万凿。台阶沉默了。第二天台阶又来找佛,说:这是我的朋友切菜板,您给个说法?
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139838.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...