spark中flatMap函数用法
生活随笔
收集整理的這篇文章主要介紹了
spark中flatMap函数用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
說明
在spark中map函數和flatMap函數是兩個比較常用的函數。其中?
map:對集合中每個元素進行操作。?
flatMap:對集合中每個元素進行操作然后再扁平化。?
理解扁平化可以舉個簡單例子
輸出結果為
A 1 B 2 C 3如果用map
val arr=sc.parallelize(Array(("A",1),("B",2),("C",3))) arr.map(x=>(x._1+x._2)).foreach(println)輸出結果
A1 B2 C3所以flatMap扁平話意思大概就是先用了一次map之后對全部數據再一次map。
實際使用場景
這個場景是我曾經在寫代碼過程中遇到的難題,在字符串中如何統計相鄰字符對出現的次數。意思就是如果有A;B;C;D;B;C字符串,則(A,B),(C,D),(D,B)相鄰字符對出現一次,(B,C)出現兩次。?
如有數據
統計相鄰字符對出現次數代碼如下
data.map(_.split(";")).flatMap(x=>{for(i<-0 until x.length-1) yield (x(i)+","+x(i+1),1)}).reduceByKey(_+_).foreach(println)輸出結果為
(A,E,1) (E,D,1) (D,A,1) (C,D,1) (B,C,1) (B,D,2) (D,C,2) (D,B,1) (A,B,2)此例子就是充分運用了flatMap的扁平化功能。
總結
以上是生活随笔為你收集整理的spark中flatMap函数用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop2.7.6在Windows7
- 下一篇: SPARK RDD JAVA API 用