map和mapValues的纠纷
生活随笔
收集整理的這篇文章主要介紹了
map和mapValues的纠纷
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
map?
?
mapValues?
簡單來說:
map(func)
返回一個(gè)新的RDD,該RDD由每一個(gè)輸入元素經(jīng)過func函數(shù)轉(zhuǎn)換后組成
?mapValues
針對(duì)于(K,V)形式的類型只對(duì)V進(jìn)行操作?
簡單舉例:
其實(shí)從返回類型就可以看出來:
package suanziimport org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.rdd.RDDobject Lianxi {def main(args: Array[String]): Unit = {val conf = new SparkConf().setMaster("local").setAppName("CbkDemo")val sc = new SparkContext(conf)sc.setLogLevel("error")val rdd: RDD[(String, Double)] = sc.parallelize(Array(("George", 88.0), ("George", 95.0), ("George", 88.0),("KangKang", 93.0),("KangKang", 95.0), ("KangKang", 98.0),("limu", 98.0)))val mapRdd: RDD[((String, Double), Int)] = rdd.map(x => {(x, 1)})mapRdd.foreach(println)/*** ((George,88.0),1)* ((George,95.0),1)* ((George,88.0),1)* ((KangKang,93.0),1)* ((KangKang,95.0),1)* ((KangKang,98.0),1)* ((limu,98.0),1)*/val mapValuesRdd: RDD[(String, (Double, Int))] = rdd.mapValues(x => {(x ,1)})mapValuesRdd.foreach(println)/*** (George,(88.0,1))* (George,(95.0,1))* (George,(88.0,1))* (KangKang,(93.0,1))* (KangKang,(95.0,1))* (KangKang,(98.0,1))* (limu,(98.0,1))*/} }?
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的map和mapValues的纠纷的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利剑无意之Dubbo 面试题
- 下一篇: Hive_ 对比分区,分桶