栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

spark自定义分区器

spark自定义分区器

object Test{
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount")
    val sc: SparkContext = new SparkContext(sparkConf)
    val rdd = sc.makeRDD(List(//希望s放一个分区,其他各放一个分区
      ("s","XXX"),
      ("makeup","XXX"),
      ("words","XXX"),
      ("s","XXX")
    ),2)//这里暂定了分区,后续可以改变


    val partRdd = rdd.partitionBy(new MyPartitioner)
    //partRdd.saveAsTextFile("output")//output中3个文件
    sc.stop()
  }

  
  class MyPartitioner extends Partitioner{
    //分区数量
    override def numPartitions: Int = 3
    //根据数据的Key值返回数据的分区索引,从0开始
    override def getPartition(key: Any): Int = {
      key match{
        case "s" =>0
        case "words"=>1
        case _ =>2
      }
    }
  }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327207.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号