map和mapValues的纠纷
生活随笔
收集整理的这篇文章主要介绍了
map和mapValues的纠纷
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
map
mapValues
简单来说:
map(func)
返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成
mapValues
针对于(K,V)形式的类型只对V进行操作
简单举例:
其实从返回类型就可以看出来:
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))*/} }超强干货来袭 云风专访:近40年码龄,通宵达旦的技术人生
总结
以上是生活随笔为你收集整理的map和mapValues的纠纷的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 利剑无意之Dubbo 面试题
- 下一篇: Hive_ 对比分区,分桶