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

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.lryc.cn/news/2379455.html

相关文章:

  • Ubuntu 20.04 报错记录: Matplotlib 无法使用 OpenCV 的 libqxcb.so
  • JS 高级程序设计 设计模式
  • 新电脑软件配置二:安装python,git, pycharm
  • 数据仓库:企业数据管理的核心引擎
  • MCU开发学习记录17* - RTC学习与实践(HAL库) - 日历、闹钟、RTC备份寄存器 -STM32CubeMX
  • C++中的四种强制转换
  • YOLOv2目标检测算法:速度与精度的平衡之道
  • Quic如何实现udp可靠传输
  • 利用腾讯云MCP提升跨平台协作效率的实践与探索
  • 【Vue篇】数据秘语:从watch源码看响应式宇宙的蝴蝶效应
  • Python高级特性深度解析:从熟练到精通的跃迁之路
  • OGGMA 21c 微服务 (MySQL) 安装避坑指南
  • Linux面试题集合(4)
  • iOS Safari调试教程
  • 基于互联网和LabVIEW的多通道数据采集系统仿真设计
  • ffmpeg -vf subtitles添加字幕绝对路径问题的解决方法
  • Android Studio 安装与配置完全指南
  • 级联与端到端对话系统架构解析:以Moshi为例
  • 基于 Zookeeper 部署 Kafka 集群
  • 经典卷积神经网络
  • IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 LiteOS Studio + GCC + JLink
  • 算法加训之最短路 上(dijkstra算法)
  • java连数据库
  • QT+Opencv 卡尺工具找直线
  • GraphPad Prism简介、安装与工作界面
  • 当AI自我纠错:一个简单的“Wait“提示如何让模型思考更深、推理更强
  • esp32课设记录(一)按键的短按、长按与双击
  • 使用AI 生成PPT 最佳实践方案对比
  • React19源码系列之 API(react-dom)
  • supervisorctl守护进程