当前位置: 首页 > 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")}
}
http://www.dtcms.com/a/189865.html

相关文章:

  • 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库
  • 谷歌web第三方登录
  • .NET NativeAOT 指南
  • 鸿蒙OSUniApp打造多功能图表展示组件 #三方框架 #Uniapp
  • Java 重试机制详解
  • 鸿蒙OSUniApp 实现的二维码扫描与生成组件#三方框架 #Uniapp
  • 1688 平台 API 接口深度解析:高效获取商品详情数据的开发实践
  • 国产免费工作流引擎star 6.5k,Warm-Flow升级1.7.2(新增案例和修复缺陷)
  • LLaMA-Factory 微调 Qwen2-7B-Instruct
  • 【vim】--- vim 插件说明 超详细持续更新中
  • 车载网关--- 职责边界划分与功能解耦设计