[Spark RDD_add_1] groupByKey & reduceBykey 的区别


  【groupByKey & reduceBykey 的区别】

  在都能实现相同功能的情况下优先使用 reduceBykey

  Combine 是为了减少网络负载

  1. groupByKey 是没有 Combine 过程,可以改变 V 的类型
  List[]

combineByKeyWithClassTag[CompactBuffer[V]](createCombiner, mergeValue, mergeCombiners, partitioner, mapSideCombine = false)

  2. reduceByKey 有 Combine 过程,不能改变 V 的类型
  List[]

combineByKeyWithClassTag[V]((v: V) => v, func, func, partitioner)

  【Spark & Hadoop 的分区】

  1. Spark 的分区是切片的个数,每个 RDD 都有自己的分区数。
  2. Hadoop 的分区指的是 Reduce 的个数,是 Map 过程中对 Key 进行分发的目的地。

  【通过测试气温数据的双排序考察 reduceByKey 和 groupByKey() 的不同】
  1.启动 Hadoop 和 Spark 集群
  2.上传 temp.txt 数据到 HDFS
  3.启动 Shell 进行以下操作

  【启动 Shell】

spark-shell --master spark://s101:7077 --deploy-mode client

  【test_1】

  

  【test_2】

   


猜你喜欢

转载自www.cnblogs.com/share23/p/9783231.html