Spark广播变量(类似小表广播)

server/2024/10/24 9:38:03/

广播变量:

举例:取前十的学生信息,处理学生分数信息得到前十学生的学号的数组,通过广播将这个变量广播出去

代码展示如下:

import org.apache.spark.broadcast.Broadcast
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}object Demo17Bro {def main(args: Array[String]): Unit = {val conf = new SparkConf()conf.setAppName("Demo17Bro")conf.setMaster("local")val sc = new SparkContext(conf)//获取总分前十学生的信息//1、计算学生的总分val sumScoreRDD: RDD[(String, Double)] = sc.textFile("data/score.txt").map(_.split(",")).map { case Array(id, cId, score) => (id, score.toDouble) }.reduceByKey(_ + _)//2、取前十val ids: Array[String] = sumScoreRDD.sortBy { case (_, sumScore) => -sumScore }.take(10).map { case (id, sumScore) => id }/*** 广播变量:当在算子内使用算子外的一个大变量时,同时task的数量远大于Executor数量时,可以将变量广播出去*///1、将变量广播到Executor端val broIds: Broadcast[Array[String]] = sc.broadcast(ids)//3、读取学生的信息val studentsRDD: RDD[String] = sc.textFile("data/students.txt")//4、取出前十学生的信息val top10RDD: RDD[String] = studentsRDD.filter(stu => {//取出学号val id: String = stu.split(",").head//2、获取广播变量broIds.value.contains(id)})top10RDD.foreach(println)}
}


http://www.ppmy.cn/server/134408.html

相关文章

AUTOSAR_EXP_ARAComAPI的6章笔记(3)

☞返回总目录 相关总结:AutoSar AP CM实例说明符的使用方法的总结 6.3 在多绑定上下文中的使用 以下部分修改了在 6.2.1 中展示的示例,描述了如何在应用程序和实例清单中为单个 PPortPrototype 定义多个网络绑定,而无需更改自适应应用程序…

MongoDB快速入门

MongoDB 概念 什么是 MongoDB MongoDB 是在2007年由DoubleClick公司的几位核心成员开发出的一款分布式文档数据库,由C语言编写。 目的是为了解决数据大量增长的时候系统的可扩展性和敏捷性。MongoDB要比传统的关系型数据库简单很多。 在MongoDB中数据主要的组织…

深入解析 Jenkins 自动化任务链:三大方法实现任务间依赖与状态控制

文章目录 前言1. 使用 “Build Trigger”(构建触发器)2. 使用 Jenkins Pipeline 实现任务触发3. 使用 Jenkins 的 “Parameterized Trigger Plugin” 插件例子1:任务 A 成功后自动执行任务 B例子2:任务 A 成功后自动执行 Pipeline…

基于SpringBoot+Vue+uniapp的C语言在线评测系统的详细设计和实现

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

线性回归(一)

线性回归 1.基本术语 ①特征:预测所依据的自变量称为特征或协变量 ②标签:试图预测的目标称为标签或目标 2.举个栗子 线性假设是指目标(房屋价格)可以表示为特征(面积和房龄)的加权和,如下面…

axios直接上传binary

axios直接上传二进制文件 、 axios直接上传apk、axios直接上传binary postman中的参数选项中有个binary,平常我们很少使用,可能有的同学遇到这种情况不太会了,认为后端应该有个字段名来接收,或者使用 Formdata,但其实…

「Qt Widget中文示例指南」如何实现半透明背景?

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文将为大家展示如…

舍伍德业务安全架构(Sherwood Applied Business Security Architecture, SABSA)

舍伍德业务安全架构(Sherwood Applied Business Security Architecture, SABSA)是一个企业级的安全架构框架,它提供了一个全面的方法来设计和实现信息安全策略。SABSA模型将业务需求与安全控制相结合,确保企业的信息安全措施能够支…