SparkSQL源码分析系列02-编译环境准备

news2025/3/11 0:31:55

本文主要描述一些阅读Spark源码环境的准备工作,会涉及到源码编译,插件安装等。

1. 克隆代码。

打开IDEA,在Git下的Clone中,输入 https://github.com/apache/spark,克隆代码到本地,CheckOut到目标版本Spark3.4
在这里插入图片描述
在这里插入图片描述

2. 安装maven。

版本按照pom文件指定的版本安装,在IDEA中配置安装的路径。
在这里插入图片描述
在这里插入图片描述

3. 为IDEA安装 ANTLR 和 Scala 插件

在这里插入图片描述

4. 测试ANTLR的词法语法解析功能

在Spark源码项目中,搜索 SqlBaseParser.g4 文件,在 singleStatement 上右键,找到“Test Rule singleStatement”,在底部对话框中输入SQL语句,观察解析出的抽象语法树。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

注意:SQL语句一定要大写。

5. 编译源码

由于我们只做源码阅读,不做打包,所以只需要通过 compile 就行,package貌似报错更多,不容易打包成功,但是 compile 相对容易。多次 compile 尝试,直到 build success。
在这里插入图片描述

6. 运行测试类

在…/spark_branch3_4/sql/core/src/test/scala/org/apache/spark/sql目录下,打开 SQLQuerySuite 文件,在任意一个test模块上右键、运行,观察是否正常输出。
在这里插入图片描述
测试案例运行成功。至此,代表源码阅读环境准备完毕。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/894719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

音视频FAQ(一):视频直播卡顿

一、摘要 本文介绍了视频直播卡顿的四个主要原因,用户网络问题、用户设备性能问题、技术路线的选择和实现问题。因本文主要阐述视频直播的卡顿,故技术路线的实现指的是:CDN供应商的实现问题,包含CDN性能不足、CDN地区覆盖不足。对…

修复由于找不到vcruntime140.dll,无法继续执行代码的问题

前段时间时间Office软件出现故障,但是由于一个项目没有做完,就没有卸载重新安装。刚抽时间卸载了Office2019,然后发现CAD、NX、Comsol等软件打开的时候报错:“由于找不到vcruntime140.dll 无法继续执行”。 于是我推测是刚才卸载…

数据集成中的关键挑战与策略:数据安全与隐私保护

在互联网的普及和信息技术的发展下,数据集成成为了现代社会中各个领域中不可或缺的任务。数据集成是指将来自不同数据源的数据整合到一个统一的数据集中,以便进行进一步的分析和利用。然而,由于数据的多样性和复杂性,数据集成过程…

git 开发环境配置

系统:Mac OS 1、下载git,官网已经推荐使用命令下载。 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh) 2、验证git是否安装成功 git --version 3、配置本地git全局变量 git config --global user.n…

面试题-React(三):什么是JSX?它与常规JavaScript有什么不同?

在React的世界中,JSX是一项引人注目的技术,它允许开发者在JavaScript中嵌套类似HTML的标签,用于描述UI组件的结构。本篇博客将通过丰富的代码示例,深入探索JSX语法,解析其在React中的用法和优势。 一、JSX基础语法 在…

决策准则之赫维兹准则、萨维奇遗憾准则、拉普拉斯不充分理由准则、沃尔德准则

一、Hurwicz criteria(赫维兹准则) 赫维兹准则是一种决策准则,用于在不确定条件下进行决策。考虑决策者对不同结果的态度,通过调整“乐观度参数”(optimism parameter)来权衡最优和最坏结果的可能性。 “乐观度参数”在0到1之间取值: 当乐…

推特群推王:引爆您的产品

作为出海市场的营销平台,Twitter的流量不断攀升,已然成为跨境贸易企业的一部分。当前,Twitter已不再是一个简单的社交平台,而是一个强大的营销平台,使企业能够与受众实时互动。然而,与其他社交媒体一样&…

springboot数据库密码加密的配置方法_Java

前言 由于系统安全的考虑&#xff0c;配置文件中不能出现明文密码的问题&#xff0c;本文就给大家详细介绍下springboot配置数据库密码加密的方法&#xff0c;下面话不多说了&#xff0c;来一起看看详细的介绍吧 1.导入依赖 <!--数据库密码加密--> <dependency>&…

密码学学习笔记(十九):密码学关键术语的解释1

数据加密标准(DES) 数据加密标准是使用最广泛的加密体制&#xff0c;它于1977年被美国国家标准和技术研究所(NIST)采纳为联邦信息处理标准FIPS PUB 46。 DES3DESAES明文分组长度&#xff08;位&#xff09;6464128密文分组长度&#xff08;位&#xff09;6464128密钥长度&…

Spring-4-掌握Spring事务传播机制

今日目标 能够掌握Spring事务配置 Spring事务管理 1 Spring事务简介【重点】 1.1 Spring事务作用 事务作用&#xff1a;在数据层保障一系列的数据库操作同成功同失败 Spring事务作用&#xff1a;在数据层或业务层保障一系列的数据库操作同成功同失败 1.2 案例分析Spring…

Nginx前后端服务器部署

Nginx作为正反向代理的中转站&#xff0c;是连接前后端网络服务的媒介 Nginx下载&#xff1a;http://nginx.org/download/http://nginx.org/download/ 一、上传到服务器固定路径下并解压 上传到/opt/software/nginx-1.19.0.tar.gz cd /opt/software/ tar -zxvf nginx-1.19.0.…

C++学习一STL

文章目录 一、STL基本概念1.泛型程序设计2.STL中的基本的概念 二、容器概述1.简介2.顺序容器3.关联容器4.容器适配器5.成员函数 三、迭代器1.概念2.双向迭代器3.随机访问迭代器4.容器上的迭代器类别 四、算法1.概念2.不变序列算法2.变值算法4.删除算法5.变序算法6.排序算法7. 堆…

使用神卓互联内网穿透搭建远程访问公司ERP系统

神卓互联是一款企业级内网穿透软件&#xff0c;可以将内网中的服务映射到公网上&#xff0c;实现内网服务的访问。通过神卓互联&#xff0c;您可以远程访问ERP系统。在使用神卓互联进行内网穿透时&#xff0c;您只需要在生成的公网地址后面加上ERP系统的端口号&#xff0c;即可…

未来公文的智能化进程

随着技术的飞速发展&#xff0c;公文——这个有着悠久历史的官方沟通方式&#xff0c;也正逐步走向智能化的未来。自动化、人工智能、区块链...这些现代科技正重塑我们的公文制度&#xff0c;让其变得更加高效、安全和智慧。 1.语义理解与自动生成 通过深度学习和NLP&#xff…

爬虫代理一分钟请求数量升级

Hello&#xff0c;各位爬中高手&#xff01;你是否曾经遇到过爬虫代理一分钟请求数量过少的问题&#xff1f;别急&#xff0c;今天我来分享一些方法&#xff0c;让你的爬虫代理请求数量快速飙升&#xff01;这些技巧简单易行&#xff0c;让你的爬虫工作更加高效。 在进行爬虫工…

TikTok连续12个季度跻身全球下载量排行第一

据报道&#xff0c;美国数据公司SensorTower发布了《2023年第二季度全球移动应用下载报告》&#xff0c;数据统计了全球范围内以及各地区下载量最高的App&#xff0c;以及购物类App下载量最高的市场。数据显示&#xff0c;TikTok再次荣登全球下载量最高的应用程序榜首&#xff…

vue项目使用qrcodejs2遇到Cannot read property ‘appendChild‘ of null

这个问题是节点还没创建渲染完就读取节点&#xff0c;这个时候应该先让节点渲染完成在生成&#xff0c;解决方法有以下两种 1、使用$nextTick&#xff08;&#xff09;方法进行&#xff0c;这个方法是用来在节点创建渲染完成后进行的操作 that.$nextTick(() > {let qrcode …

【算法测试】盒子上绑定好的算法,只能输入rtsp流, 如何测试其精度? 讲图片拼接成视频,然后生成rtsp流

文章目录 前言1. 安装rtsp服务器2. 用ffmpeg推送视频到rtsp3.用VLC 承接播放&#xff0c;查看效果&#xff1a;4. 找一个测试集图片集&#xff0c;生成视频 前言 要测试盒子上的算法精度&#xff0c;但盒子的算法只能输入rtsp流&#xff0c;这样我们难道只能去摄像头底下演示效…

【多线程】JUC的常见类

1. Callable 接口 首先先来认识下什么是 JUC&#xff0c;JUC 全称为 java.util.concurrent&#xff0c;这个包里面放了并发编程(多线程相关的组件) Callable 接口类似于 Runnable 一样&#xff0c;Runnable 用来描述一个任务&#xff0c;而 Callable 也是用来描述一个任务的。 …

爱分析发布2023商业智能最佳实践案例,OceanMind海睿思再次入选!

近日&#xff0c;中国领先的产业数字化研究与咨询机构 爱分析&#xff0c;在北京举办了第五届数据智能高峰论坛&#xff0c;活动以“激活数据资产&#xff0c;释放数据价值”为主题。 中新赛克海睿思作为数字化转型优秀厂商代表受邀参会。 会上&#xff0c;爱分析重磅发布了《…