首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
JavaEdge
华为_2012实验室_Java工程师
关注
已关注
取消关注
一起入门 spark 吧!
@JavaEdge:
SparkSQL入门
0 SharkSpark 的一个组件,用于大规模数据分析的 SQL 查询引擎。Shark 提供了一种基于 SQL 的交互式查询方式,可以让用户轻松地对大规模数据集进行查询和分析。Shark 基于 Hive 项目,使用 Hive 的元数据存储和查询语法,并基于Hive进行了性能优化和扩展。0.1 设计灵感来自 Google 的 Dremel 系统:将数据存储在列式存储引擎使用分布式计算引擎进行查询Shark 采用类似架构并使用 Spark 作为计算引擎,使 Shark 具有很高查询性能和可扩展性。0.2 缺陷Shark 在 Spark 1.0 发布之后被正式弃用,Shark 的性能和可扩展性相对于 Spark SQL 来说存在一些局限性。以下是一些导致 Shark 被淘汰因素:① 数据模型Shark 基于 Hive 数据模型,使用 Hive 的元数据存储和查询语法,导致查询语句执行效率较低。② 计算模型Shark 采用类似 Dremel 的列式存储引擎,虽能提高查询效率,但也导致更高内存开销和更复杂代码实现。③ 性能和可扩展性Shark性能和可扩展性相对Spark SQL存在一些局限性,如不支持流计算、新的数据源。因此,Spark社区放弃 Shark,转而对 Spark SQL 更深入研究,以提高查询性能和可扩展性,并支持更多数据源和计算模型。因此,Spark SQL 取代 Shark 成为 Spark 生态系统的 SQL 查询引擎。1 概述Spark SQL,结构化数据处理的Spark模块。Spark SQL官网误区:Spark SQL就是一个SQL处理框架,不仅是处理 SQL自 Spark 1.0 版本(2014 年 4 月)以来成为核心发布的一部分。与基本的Spark RDD API不同,Spark SQL提供的接口为Spark提供了有关数据和正在执行的计算的更多信息。在内部,Spark SQL使用这些额外的信息执行额外的优化。与Spark SQL交互的几种方法包括SQL和Dataset API。在计算结果时,无论使用哪种API /语言表达计算,都使用相同的执行引擎。这种统一意味着开发人员可以根据提供最自然的方式表达给定转换的API轻松切换。2 用途执行SQL查询。 Spark SQL也可用于从Hive读取数据。当从另一种编程语言中运行SQL时,结果将作为Dataset/DataFrame返回。还可使用命令行或通过JDBC/ODBC与SQL接口交互。3 特性3.1 集成性Spark SQL可让你在Spark程序用SQL或熟悉的DataFrame API查询结构化数据。可在Java、Scala、Python和R中使用。它可使SQL查询与Spark程序无缝混合。3.2 统一数据访问DataFrames和SQL提供了一种通用方式访问各种数据源如Hive、Avro、Parquet、ORC、JSON和JDBC。甚至可在这些数据源之间联接数据。spark.read.format("json").load(path)spark.read.format("text").load(path)spark.read.format("parquet").load(path)spark.read.format("json").option("...","...").load(path)3.3 兼容HiveSpark SQL支持HiveQL语法以及Hive SerDes和UDF,使你可以访问现有的Hive仓库并在其上运行SQL或HiveQL查询。如果你想把Hive的作业迁移到Spark SQL,这样的话,迁移成本就会低很多3.4 标准的数据连接Spark SQL提供了服务器模式,可为BI提供行业标准的JDBC和ODBC连接功能。通过该功能,可通过JDBC或ODBC连接到Spark SQL并进行数据查询和操作。4 架构5 spark-submit 启动应用程序一旦绑定用户应用程序,就能用spark-submit启动。该脚本负责使用 Spark 及其依赖项设置类路径,并支持 Spark 支持的不同集群管理器和部署模式:./bin/spark-submit \ --class <main-class> \ --master <master-url> \ --deploy-mode <deploy-mode> \ --conf <key>=<value> \ ... # other options <application-jar> \ [application-arguments]常用选项:--class:应用程序入口点(如org.apache.spark.examples.SparkPi)--master:集群的主 URLspark://23.195.26.187:7077--deploy-mode: 在工作节点部署你的驱动程序 ( cluster) 还是在本地作为外部客户端 ( client) (默认: client)--conf:K=V 格式的任意 Spark 配置属性。对于包含空格的值,将“key=value”括在引号中(如图所示)。多个配置应作为单独的参数传递。(如--conf <key>=<value> --conf <key2>=<value2>)application-jar:包含你的应用程序和所有依赖项的捆绑 jar 的路径。该 URL 必须在你的集群内全局可见,如路径hdfs://或file://存在于所有节点上的路径#!/usr/bin/env bash# 检查Spark SQL的环境变量if [[ -z "${SPARK_HOME}" ]]; then echo "SPARK_HOME is not set!" >&2 exit 1fi# 设置Spark SQL的类路径export SPARK_CLASSPATH="${SPARK_HOME}/jars/*:${SPARK_HOME}/conf"# 启动Spark SQL的服务exec "${SPARK_HOME}/bin/spark-submit" \ --class org.apache.spark.sql.hive.thriftserver.HiveThriftServer2 \ --name "Spark SQL Thrift Server" \ --master yarn \ --deploy-mode client \ --conf "spark.sql.hive.thriftServer.singleSession=true" \ --conf "spark.sql.hive.thriftServer.incrementalCollect=true" \ "${SPARK_HOME}/jars/spark-hive-thriftserver.jar" \ "$@"检查Spark SQL的环境变量,如果没有设置则退出脚本。设置Spark SQL的类路径,包含了Spark的jar包和配置文件。使用spark-submit命令启动Spark SQL的服务。指定启动类为HiveThriftServer2,该类负责启动Spark SQL的Thrift Server。指定服务名称为"Spark SQL Thrift Server"。指定Spark运行模式为yarn,提交任务到yarn集群中运行。指定部署模式为client,即客户端模式。设置Spark SQL的配置项,例如singleSession和incrementalCollect。指定启动的jar包为spark-hive-thriftserver.jar。最后传入用户输入的参数。关注我,紧跟本系列专栏文章,咱们下篇再续!作者简介:魔都技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。负责:中央/分销预订系统性能优化活动&优惠券等营销中台建设交易平台及数据中台等架构和开发设计车联网核心平台-物联网连接平台、大数据平台架构设计及优化目前主攻降低软件复杂性设计、构建高可用系统方向。参考:编程严选网
点赞 0
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
2025-12-30 14:31
滴滴_运维开发工程师(准入职员工)
滴滴内推,滴滴内推码
🔥滴滴一二三面 技术面 面经后端最近结束了滴滴的面试,三轮技术面问得超细致❗️整理了完整面经和思路分享给大家👇——————🧩一面 60min•RocketMQ vs Kafka 区别(设计理念/吞吐/延迟)•Redis性能核心:内存+I/O多路复用原理•Redis数据结构选型场景实战•MySQL与Redis一致性方案(旁路缓存策略)•协程原理剖析:Goroutine底层调度模型•Lua脚本实现原子库存扣减•MySQL索引优化与B+树优势•防超卖方案:分布式锁+库存校验•算法:搜索旋转排序数组(二分变形)——————🧩二面 60min•List遍历删除的坑(迭代器失效问题)•MySQL索...
点赞
评论
收藏
分享
2025-12-31 17:04
善仁(浙江)新材料科技有限公司_产品经理
低温烧结可焊接纳米银浆AS9120W对FPC制造格局的重构
低温烧结可焊接纳米银浆AS9120W对FPC制造格局的重构 一、AS9120W纳米银浆的核心特性:突破传统FPC制造瓶颈 AS9120W作为低温烧结可焊接纳米银浆,其核心特性直接针对传统FPC制造的痛点,如高温损伤基材、焊接性能不足、线路精度受限,为FPC制造提供了全新解决方案:1超低温烧结(120℃):传统银浆需200℃以上高温烧结,易导致柔性基材如PI、PET热降解、变形或翘曲。AS9120W的120℃烧结温度彻底解决了这一问题,保留了基材的柔韧性与尺寸稳定性,还大幅降低了生产过程中的能耗,能耗降低40%。2高导电性与精细线路能力:AS9120W的体积电阻率低至4.5×10⁻⁶Ω·cm(...
烧结银|导电胶|导电银浆
点赞
评论
收藏
分享
2025-12-27 19:23
陕西科技大学 golang
这什么情况?
这是什么情况
点赞
评论
收藏
分享
2025-11-06 16:50
门头沟学院 Java
无敌了HR
给我气笑了
用微笑面对困难:
word打字比赛二等奖的我,也要来凑合凑合
点赞
评论
收藏
分享
今天 08:49
蚌埠坦克学院 嵌入式软件开发
嵌入式春招还不知道要准备什么,那你要注意了!
每年春招都会出现一个明显的现象:岗位很多,投简历的人也很多,但真正能被要走的人并不多。问题并不在“嵌入式不行了”,而在于大量候选人根本不知道企业在春招阶段到底考什么、要什么。如果现在已经是一月份甚至二月份,你还停留在“我再看看”“等三四月再说”,那基本已经慢了一拍。下面这篇文章,专门讲嵌入式春招必须准备的核心内容,每一项都是实打实的面试考点。一、春招嵌入式岗位的真实定位先说一个残酷但真实的事实:春招 ≠ 教你从零开始春招 = 用最短时间判断你能不能干活企业在春招中对嵌入式工程师的期望通常是:能快速上手项目不需要从 C 语言教起对 RTOS / Linux / 硬件至少有一条完整技术线所以你必须...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
都 2026 年了,还在神话 AI Agent开发吗?
424
2
...
2025找工年终总结
323
3
...
牛客2025年终报告重磅上线——揭晓你的年度修炼成就!
309
4
...
Goodnight World!文科转码兜兜转转的那些年……
295
5
...
字节实习生涨薪保真?
208
6
...
我的秋招回忆录:从惨败到硕果的成长之路
200
7
...
简历求锐评,211硕士找实习
187
8
...
为什么你的实习是“无效实习”?又该如何做
183
9
...
24h一面到oc速通字节!挑战全网最快timeline
160
10
...
新年第一篇,关于实习背调…
150
创作者周榜
更多
正在热议
更多
#
对2025年忏悔
#
8417次浏览
156人参与
#
非技术2023笔面经
#
316639次浏览
2684人参与
#
一人说一家双休的公司
#
12124次浏览
133人参与
#
虾皮求职进展汇总
#
362389次浏览
2767人参与
#
实习没人带,苟住还是跑路?
#
17826次浏览
329人参与
#
春招前还要继续实习吗?
#
10963次浏览
119人参与
#
应届生,你找到工作了吗
#
97345次浏览
593人参与
#
机械求职避坑tips
#
82482次浏览
534人参与
#
为了秋招你都做了哪些准备?
#
30062次浏览
528人参与
#
经纬恒润求职进展汇总
#
145904次浏览
1075人参与
#
毕业季,你想好怎么跟生活对线了吗?
#
266808次浏览
3863人参与
#
面试官问过你最刁钻的问题是什么?
#
14567次浏览
126人参与
#
每个月的工资都是怎么分配的?
#
81604次浏览
662人参与
#
2025秋招体验点评
#
86520次浏览
721人参与
#
秋招被确诊为……
#
280226次浏览
1587人参与
#
秋招投递攻略
#
255991次浏览
2520人参与
#
AI时代,哪些岗位最容易被淘汰
#
25751次浏览
220人参与
#
实习在多还是在精
#
78042次浏览
494人参与
#
你收到了团子的OC了吗
#
1491377次浏览
11813人参与
#
职场新人生存指南
#
492349次浏览
9518人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务