广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot对接Spark过程详解
  • 207
分享到

SpringBoot对接Spark过程详解

SpringBoot接入SparkSpringBoot对接Spark 2023-02-15 12:02:42 207人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文主要介绍 SpringBoot 与 spark 如何对接,具体使用可以参考文章 springBoot 使用 Spark pom 文件添加 Maven 依赖 spark-core:

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

pom 文件添加 Maven 依赖

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

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: fat
  master:
    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;
    @Bean
    public SparkConf sparkConf() {
        SparkConf sparkConf = new SparkConf()
                .setAppName(appName)
                .setMaster(sparkMasterUri);
        return sparkConf;
    }
    @Bean
    @ConditionalOnMissingBean(JavaSparkContext.class)
    public JavaSparkContext javaSparkContext() {
        return new JavaSparkContext(sparkConf());
    }
    @Bean
    public 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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot对接Spark过程详解

本文链接: https://www.lsjlt.com/news/196179.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作