当前位置: 首页 > news >正文

spark小任务

import org.apache.spark.{Partitioner, SparkConf, SparkContext}object PartitionCustom {// 分区器决定哪一个元素进入某一个分区// 目标: 把10个分区器,偶数分在第一个分区,奇数分在第二个分区// 自定义分区器// 1. 创建一个类继承Partitioner// 2. 重写两个方法// 3. 在创建RDD的时候,partitionBy方法 指定分区器// 创建一个类继承Partitionerclass MyPartitioner extends Partitioner{override def numPartitions: Int = 2 // 两个分区,编号就是:0,1// key - valueoverride def getPartition(key: Any): Int = {if(key.asInstanceOf[Int] % 2 == 0){0}else{1}}}def main(args: Array[String]): Unit = {// 创建SparkContextval conf = new SparkConf().setAppName("PartitionCustom").setMaster("local[*]")val sc = new SparkContext(conf)// 初始数据val rdd = sc.parallelize(List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))//val rdd = sc.parallelize(List(  (1,1),  (2,2))// 自定义分区器使用的前提:数据是key-value类型val rdd1 = rdd.map(num =>(num,num))// 使用自定义分区器val rdd2 = rdd1.partitionBy(new MyPartitioner)// 在分区完成之后的基础上,只保留keyval rdd3 = rdd2.map(t => t._1)rdd3.saveAsTextFile("output6")}
}

相关文章:

  • AI产品上市前的“安全通行证“
  • 高防ip支持哪些网络协议
  • HDD 安全擦除:何时以及如何在 Windows PC 上安全擦除硬盘
  • vue3:十三、分类管理-表格--slot插槽详细说明---表格内拼接字段、tag标签
  • 微信小程序学习之搜索框
  • 【工具变量】各省市场化指数-杨兴权版共三个方法(1997-2023年)
  • C++类和对象之相关特性
  • bfs-最小步数问题
  • Leetcode数组day1
  • SpringAI
  • HandlerInterceptor介绍-笔记
  • NC65开发环境(eclipse启动)在企业报表中的报表数据中心里计算某张报表时,一直计算不出数据的解决办法。
  • C++类和对象练习:Date类实现日期的差,比较日期的大小,日期的前置后置++,--,输入输出Date类,对默认函数的练习。
  • uniapp使用全局组件,
  • Django + Celery 打造企业级大模型异步任务管理平台 —— 从需求到完整实践(含全模板源码)
  • VCS X-PROP建模以及在方针中的应用
  • 【MySQL】变更缓冲区:作用、主要配置以及如何查看
  • 记录: Windows下远程Liunx 系统xrdp 用到的一些小问题(免费踩坑 记录)
  • 海量数据Top k 与查重问题
  • 【FFmpeg】介绍+安装+VisualStudio配置FFMpeg库
  • 2025年度十大IP!IP SH荣膺文化综合类TOP10
  • 石家庄推动城市能级与民生福祉并进
  • 习近平圆满结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 花2万多在海底捞办婚礼,连锁餐企要抢酒楼的婚宴生意?
  • 伤员回归新援融入,海港逆转海牛重回争冠集团
  • 冯德莱恩:欧美贸易谈判前不会前往美国会见特朗普