日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spark中flatMap函数用法

發布時間:2024/1/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark中flatMap函数用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明

在spark中map函數和flatMap函數是兩個比較常用的函數。其中?
map:對集合中每個元素進行操作。?
flatMap:對集合中每個元素進行操作然后再扁平化。?
理解扁平化可以舉個簡單例子

val arr=sc.parallelize(Array(("A",1),("B",2),("C",3))) arr.flatmap(x=>(x._1+x._2)).foreach(println)

輸出結果為

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)出現兩次。?
如有數據

A;B;C;D;B;D;C B;D;A;E;D;C A;B

統計相鄰字符對出現次數代碼如下

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函数用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。