spark 3.0.0源码环境搭建

news/2024/12/23 13:16:34/

环境

Spark版本:3.0.0
java版本:1.8
scala版本:2.12.19
Maven版本:3.8.1

spark_5">编译spark

spark-3.0.0的源码导入到idea中
执行mvn clean package -Phive -Phive-thriftserver -Pyarn -DskipTests

执行sparksql示例类SparkSQLExample

运行成功

遇到的问题

缺少parse包的类


parse包的类是ANTLR工具生成的,确认idea的插件已经安装了。
image.png
找到sql包下面的SqlBase.g4文件,右键执行生成文件。最后生成的文件在gen目录下,创建一个新的包org.apache.spark.sql.catalyst.parser,将生成的文件都复制到这个包下面。

image.pngscala.reflect包的类缺失


spark-example模块的依赖加上scala-reflect的jar包

在运行界面上,选中‘将带有provided依赖加入路径’

spark_25">没有spark版本文件


spark版本文件是spark-build-info.sh文件生成的

我们可以手动在创建spark-version-info.properties文件,写上版本

Master URL没有指定


代码中加上master的配置

ANTLR版本不对

image.png
在对应plugin中找到插件主页。

在主页中找到对应版本的插件下载

手动安装下载的插件


http://www.ppmy.cn/news/1503545.html

相关文章

计算机毕业设计选题推荐-社区停车信息管理系统-Java/Python项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

vue3使用递归组件渲染层级结构

先看看是不是你想要的: 当有层级去渲染的时候,嵌套的层级不明确,这时只能通过递归组件去渲染。 数据如下: 通过判断subCatalog这个字段的长度是否大于0来确定是否有下级。 上代码:(代码是使用uniapp开发的&#xff0…

3.redis客户端

1.命令行客户端 在安装redis的时候就已经安装好了,就是redis-cli redis-cli -h 127.0.0.1 -p 6379 -a 123456 -a 表示密码 -h 表示ip,不配置默认为本机 127.0.0.1 -p 表示端口,不配置默认为 6379 进入后可以输入ping,返回pong代表…

数据合成的艺术:sklearn中的数据生成技术

数据合成的艺术:sklearn中的数据生成技术 在机器学习领域,数据合成是一种重要的技术,它允许我们生成合成数据集,用于测试、验证模型或处理数据不足的问题。Scikit-learn(简称sklearn),作为Pyth…

git submodule换源

加源 git submodule add -b branch_name gitgithub.com:javasgl/xxx.git module_path git submodule update --init换源 git deinit --force contrib/xxx git rm --cached module_path # 移除相关代码 rm .git/modules/module_path参考: https://javasgl.github.i…

【Android开发】Android studio 目录认识

下面是一个更详细的Android Studio项目结构说明,包括每个部分的作用、意义以及它们之间的相互关系: 1. app 目录 位置:这是应用程序的核心所在,包含所有源代码和资源文件。作用:存放你的代码和资源。重要性&#xff…

通过颜色反卷积进行组织化学染色的定量分析

颜色反卷积(Color Deconvolution)是免疫组织化学(Immunohistochemistry, IHC)和其他组织染色技术中常用的一种图像分析方法。它被用来从复合染色图像中分离出单独的染色成分,以便进行更精确的定量分析。这种方法特别适用于多重染色实验,其中不同的染色标记使用不同的颜色…

公司的Spring框架接受MIME类型为json格式的带null的字符串,然后这个带null的字段被自动忽略了,排查了好久

接收方法: 解决方案: 先去掉RequsetBody 因为使用RequsetBody时,框架会调用HttpMessageConvert读取HttpRequest的InputStram反序列化为对象,这个InputStram只能读一次。 后续你的代码再通过Reader读输入流时,已经没有…