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

SpringBoot 接入 Spark

本文主要介绍 SpringBoot 与 Spark 如何对接,具体使用可以参考文章 SpringBoot 使用 Spark

pom 文件添加 maven 依赖

  • spark-core:spark 的核心库,如:SparkConf
  • spark-sql:spark 的 sql 库,如:sparkSession
  • janino: Janino 是一个极小、极快的 开源Java 编译器,若不添加,spark 获取 MySQL 或 JSON 数据时会报错

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/codehaus/janino/InternalCompilerExceptio

<dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.13</artifactId><version>3.2.1</version>
</dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql_2.13</artifactId><version>3.2.1</version>
</dependency><dependency><groupId>org.codehaus.janino</groupId><artifactId>janino</artifactId><version>3.0.8</version>
</dependency>

 
application.yml 添加 spack 配置,master 使用 local 不需要搭建 spark,方便学习与测试

spark:app:name: fatmaster:uri: local[*]

 
配置 SparkConfig

  • sparkConf:Spark 基础信息配置
  • JavaSparkContext:基于 sparkConf 生成,用于
  • SparkSession:基于 SparkContext 生成
@Configuration
public class SparkConfig {@Value("${spark.app.name}")private String appName;@Value("${spark.master.uri}")private String sparkMasterUri;@Beanpublic SparkConf sparkConf() {SparkConf sparkConf = new SparkConf().setAppName(appName).setMaster(sparkMasterUri);return sparkConf;}@Bean@ConditionalOnMissingBean(JavaSparkContext.class)public JavaSparkContext javaSparkContext() {return new JavaSparkContext(sparkConf());}@Beanpublic SparkSession sparkSession() {return SparkSession.builder().sparkContext(javaSparkContext().sc()).getOrCreate();}
}
  • SparkContext:从Spark1.x开始,Spark SparkContext是Spark的入口点,用于在集群上以编程方式创建Spark RDD、累加器和广播变量。是spark执行环境的客户端,是spark执行作业的入口点,是spark应用程序的主控。

  • SparkSession:从Spark2.0开始,SparkSession已经成为Spark处理RDD、DataFrame 和 Dataset 的入口点。SparkSessio n封装了SparkConf、SparkContext和SQLContext。为了向后兼容,SQLContext和HiveContext也被保存下来。它实质上是SQLContext和HiveContext的组合(未来可能还会加上StreamingContext),所以在SQLContext和HiveContext上可用的API在 SparkSession 上同样是可以使用的。SparkSession 内部封装了sparkContext,所以计算实际上是由 sparkContext 完成的。

  • SQLContext:在Spark version1.0中,为了处理结构化数据(行和列),SQLContext (org.apache.spark.sql.SQLContext )是一个入口点,但是在2.0版本中,SQLContext已经被SparkSession所取代。Apache Spark SQLContext是SparkSQL的入口点,Spark是Spark1.x中用于结构化数据(行和列)的Spark模块。正在处理。Spark SQLContext已初始化。

  • JavaSparkContext 是 Java友好版本的[org.apache.spark.SparkContext]返回[org.apache.spark.api.java.JavaRDD],并使用Java集合,而不是Scala集合。

相关文章:

SpringBoot 接入 Spark

本文主要介绍 SpringBoot 与 Spark 如何对接&#xff0c;具体使用可以参考文章 SpringBoot 使用 Spark pom 文件添加 maven 依赖 spark-core&#xff1a;spark 的核心库&#xff0c;如&#xff1a;SparkConfspark-sql&#xff1a;spark 的 sql 库&#xff0c;如&#xff1a;s…...

在线支付系列【23】支付宝开放平台产品介绍

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 文章目录前言支付产品App 支付手机网站支付电脑网站支付新当面资金授权当面付营销产品营销活动送红包会员产品App 支付宝登录人脸认证信用产品芝麻 GO芝麻先享芝麻免押芝麻工作证安全产品交易安全防护其…...

Python绝对路径和相对路径详解

在介绍绝对路径和相对路径之前&#xff0c;先要了解一下什么是当前工作目录。什么是当前工作目录每个运行在计算机上的程序&#xff0c;都有一个“当前工作目录”&#xff08;或 cwd&#xff09;。所有没有从根文件夹开始的文件名或路径&#xff0c;都假定在当前工作目录下。注…...

基于多进程的并发编程

一&#xff1a;不同平台基于多进程并发编程的实现 1.Windows平台 参考博文&#xff1a;Windows 编程&#xff08;多进程&#xff09; 更多API: 1&#xff09;waitForSingleObject&#xff1a;等待一个内核对象变为已通知状态 2&#xff09;GetExitCodeProcess&#xff1a;获取…...

Flask入门(4):CBV和FBV

目录4.CBV和FBV4.1 继承 views.View4.2 继承 views.MethodView4.CBV和FBV 前面的例子中&#xff0c;都是基于视图函数构建视图&#xff08;FBV&#xff09;&#xff0c;和Django一样&#xff0c;Flask也有基于类构建视图&#xff08;CBV&#xff09;的方法。这种方式用的不多&…...

Qt OpenGL(三十九)——Qt OpenGL 核心模式-在雷达坐标系中绘制飞行的飞机

提示:本系列文章的索引目录在下面文章的链接里(点击下面可以跳转查看): Qt OpenGL 核心模式版本文章目录 Qt OpenGL(三十九)——Qt OpenGL 核心模式-在雷达坐标系中绘制飞行的飞机 一、场景 在之前绘制完毕雷达显示图之后,这时候,我们能匹配的场景就更广泛了,比如说…...

系统应用 odex 转 dex

说下为什会有这个需求&#xff0c;以某系统应用为例&#xff0c;我们通过 adb 获取到的 apk 反编译查看只有少部分代码和资源&#xff0c;关键代码看不到。 经过一系列操作&#xff0c;把 odex 转换为 dex 可以看到源码。 工具下载 Smali 下载 1、使用 adb shell pm list pa…...

【GPLT 三阶题目集】L3-013 非常弹的球

刚上高一的森森为了学好物理&#xff0c;买了一个“非常弹”的球。虽然说是非常弹的球&#xff0c;其实也就是一般的弹力球而已。森森玩了一会儿弹力球后突然想到&#xff0c;假如他在地上用力弹球&#xff0c;球最远能弹到多远去呢&#xff1f;他不太会&#xff0c;你能帮他解…...

vue项目第三天

论坛项目动态路由菜单以及渲染用户登录全局前置拦截器获取用户的菜单以及接口执行过程解析菜单数据&#xff0c;渲染伟动态路由。菜单数据将数据源解析为类似路由配置对象的格式&#xff08;./xxx/xxx 这种格式&#xff09;。下方是路由实例的代码,后面封装了很多方法这里也需要…...

【渝偲医药】实验室关于核磁共振波谱NMR的知识(原理、用途、分析、问题)

核磁共振波谱法&#xff08;Nuclear Magnetic Resonance&#xff0c;简写为NMR&#xff09;与紫外吸收光谱、红外吸收光谱、质谱被人们称为“四谱"&#xff0c;是对各种有机和无机物的成分、结构进行定性分析的强有力的工具之一&#xff0c;亦可进行定量分析。 核磁共振&…...

教你文本生成图片——stablediffusion

今天来点轻松的话题&#xff0c;带大家玩一个用文字生成图片的模型。相信大家如果关注AIGC领域&#xff0c;对文本生成图片&#xff0c;对Stablefiffusion、DEALL.E应该不陌生。今天给大家介绍的就是基于SD2 finetune出来的一个模型&#xff08;&#xff09;这篇文章不会教大家…...

C语言学习笔记-命令行参数

在图形界面普及之前都使用命令行界面。DOS和UNIX就是例子。Linux终端提供类UNIX命令行环境。 命令行&#xff08;command line&#xff09;是在命令行环境中&#xff0c;用户为运行程序输入命令的行。命令行参数&#xff08;command-line argument&#xff09;是同一行的附加项…...

ASEMI代理FGH60N60,安森美FGH60N60车规级IGBT

编辑-Z 安森美FGH60N60车规级IGBT参数&#xff1a; 型号&#xff1a;FGH60N60 集电极到发射极电压&#xff08;VCES&#xff09;&#xff1a;600V 栅极到发射极电压&#xff08;VGES&#xff09;&#xff1a;20V 收集器电流&#xff08;IC&#xff09;&#xff1a;120A 二…...

http409报错原因

今天一个同事的接口突然报409,大概百度了一下,不是很清楚,谷歌也没找到特别好的解释 因为是直接调用的gitlab,就直接看了下gitlab的api The following table shows the possible return codes for API requests. Return valuesDescription200 OKThe GET, PUT or DELETE request…...

设计模式:适配器模式(c++实现案例)

适配器模式 适配器模式是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。好比日本现在就只提供110V的电压&#xff0c;而我的电脑就需要220V的电压&#xff0c;那怎么办啦?适配器就是干这活的&#xff0…...

Python|每日一练|数组|回溯|哈希表|全排列|单选记录:全排列 II|插入区间|存在重复元素

1、全排列 II&#xff08;数组&#xff0c;回溯&#xff09; 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2]输出&#xff1a;[[1,1,2], [1,2,1], [2,1,1]] 示例 2&#xff1a; 输…...

Linux进程状态

Linux进程状态前言阻塞挂起Linux进程状态R运行状态S睡眠状态D磁盘休眠状态T停止状态X死亡状态Z僵尸状态僵尸进程的总结前言 在介绍Linux的进程状态之前&#xff0c;我们先做一个小调查&#xff1a; 正在运行的程序是一直在运行吗&#xff1f;或者说正在运行的程序一直在被cpu处…...

大数据第一轮复习笔记

linux: 添加用户 useradd 删除用户 userdel useradd -d指定组 添加组 groupadd 删除组 groupdel 创建目录 mkdir -p 删除目录 rm -rf 创建目录 touch cat -n 查看文件(显示行号)...

HTML面试题

HTML面试题部分知识点梳理 1.如何理解HTML语义化 让页面的内容结构化&#xff0c;便于对浏览器、引擎解析&#xff0c;易于阅读&#xff0c;便于维护理解&#xff0c;利于SEO。 2.H5的新特性 video/audio视频/音频canvas 绘画geolocation 定位 用于定位用户的位置WebSocket…...

CUDA内存管理一文理清|参加CUDA线上训练营

CUDA 内存概述 GPU的内存包括&#xff1a; 全局内存&#xff08;global memory&#xff09;常量内存&#xff08;constant memory&#xff09;纹理内存核表面内存&#xff08;texture memory&#xff09;寄存器&#xff08;register&#xff09;局部内存&#xff08;local me…...

詹姆斯·韦伯望远镜:344个单点故障背后的航天工程极限挑战

1. 韦伯望远镜的“生死十日”&#xff1a;一场价值百亿美元的太空芭蕾作为一名在航天与深空探测领域摸爬滚打了十几年的工程师&#xff0c;我经历过无数次地面测试的紧张&#xff0c;也见证过发射倒计时的屏息瞬间。但像詹姆斯韦伯空间望远镜&#xff08;JWST&#xff09;这样&…...

资本可以复制流量,却复制不了《凰标》的天命@凤凰标志

——《凰标》为何无法被批量复刻&#xff1f;一、资本逻辑&#xff1a;无限复制与批量复刻可复制元素资本操作手法结果爆款剧情换皮翻拍同质化内容泛滥流量模式买量算法短期数据狂欢国风外壳元素拼贴文化“快餐”营销套路热搜话题转瞬即逝的热度 资本的核心能力&#xff0c;是复…...

必看!移动岗亭厂家交货及时性测评,日硕科技排名第一!

《【移动岗亭厂家交货及时性】哪家好&#xff1a;专业深度测评排名前五》开篇&#xff1a;定下基调在当今快节奏的商业环境中&#xff0c;移动岗亭的采购方对于厂家的交货及时性愈发重视。及时的交货能够确保项目按时推进&#xff0c;避免不必要的延误和损失。本次测评的目的就…...

如何选择AI写论文工具?

本科生、研究生写论文常陷文献难找、逻辑混乱、查重超标、AI幻觉等困境&#xff0c;盲目用AI工具还易触碰学术诚信红线。本文结合学术规范、查重要求、功能适配与数据安全&#xff0c;实测AI论文工具&#xff0c;帮你精准选对合规高效的写作助手。一、先守学术合规底线&#xf…...

【限时解密】ElevenLabs未公开的“Voice Stability Index”(VSI)指标解析——专业级语音稳定性评估体系首度披露

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;【限时解密】ElevenLabs未公开的“Voice Stability Index”&#xff08;VSI&#xff09;指标解析——专业级语音稳定性评估体系首度披露 VSI 的本质与工程意义 Voice Stability Index&#xff08;VSI&…...

Vitis HLS里给LED闪烁函数‘打标签’:深入解读ap_hs与ap_none协议的选择与实战影响

Vitis HLS中LED闪烁函数接口协议深度解析&#xff1a;ap_hs与ap_none的硬件实现差异与工程选择 在FPGA开发中&#xff0c;Vitis HLS作为高级综合工具&#xff0c;能够将C代码转换为可综合的硬件描述语言。然而&#xff0c;许多开发者在使用过程中常常忽略一个关键细节——函数…...

在Nodejs后端服务中集成Taotoken实现稳定可靠的大模型调用

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Nodejs后端服务中集成Taotoken实现稳定可靠的大模型调用 将大模型能力集成到后端服务是现代应用开发的常见需求。对于Node.js开发…...

群晖NAS进阶指南:借助Docker容器部署全能DDNS服务,实现多平台域名与公网IP智能同步

1. 为什么需要全能DDNS服务&#xff1f; 家里有群晖NAS的朋友可能都遇到过这样的烦恼&#xff1a;明明设置了外网访问&#xff0c;但过几天就失效了。这是因为大多数家庭宽带分配的都是动态公网IP&#xff0c;运营商会定期更换你的IP地址。想象一下&#xff0c;这就像你的手机…...

终极指南:EdgeDB内置迁移系统实现零停机数据库演进的完整方案

终极指南&#xff1a;EdgeDB内置迁移系统实现零停机数据库演进的完整方案 【免费下载链接】edgedb Gel supercharges Postgres with a modern data model, graph queries, Auth & AI solutions, and much more. 项目地址: https://gitcode.com/gh_mirrors/ed/edgedb …...

保姆级教程:用正点原子MFG_TOOL给I.MX6U开发板烧录出厂系统(附常见问题排查)

嵌入式Linux开发板系统烧录全流程指南&#xff1a;从零开始到成功启动 第一次拿到嵌入式开发板时的兴奋感&#xff0c;往往会被复杂的系统烧录过程冲淡不少。特别是对于刚接触嵌入式Linux的开发者来说&#xff0c;如何把系统镜像正确烧录到开发板上&#xff0c;常常成为第一个需…...