Spark SQL 通过什么来实现?

前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

若需处理的数据集是典型结构化数据源,可在 Spark 程序中引入 Spark SQL 模块,

首先读取待处理数据并将其转化为 Spark SQL 的核心数据抽象 - DataFrame

进而调用 Dataframe API 来对数据进行分析处理,也可以将 DataFrame 注册成表,直接使用 SQL 语句在数据表上进行交互式查询。

当计算结果时, Spark 底层会使用相同的执行引擎,独立于用来表达计算的 API 编程语言(目前 Spark SQL 主要支持 Scala 、 Python 、 Java 、 R ),

所以开发者可以选择 Scala 、 Python、Java 、 R 中较自己更顺手的编程语言进行 Spark SQL 学习、开发

另外,相比于 RDD , Spark SQL 模块的数据抽象( DataFrame )不仅提供了更加丰富的算子操作,还清楚地知道该数据集包含哪些列,每一列数据的名称、类型,

并将这些结构信息 ( Schema ) 运用在底层计算、存储和优化中,从而在程序员并没有显式调优的情况下, Spark SQL 模块也会自动根据 DataFrame 提供的结构信息来减少数据读取、提升执行效率以及对执行计划进行优化

除了 Spark SQL 模块内部自动对计算过程进行丰富、智能地调优外,我们也可以通过手动设置诸多 Spark 应用运行时的参数来更好地配合 Spark 集群 cpu 、内存可用资源以及业务需求等实际情况,进而提升 Spark 应用的执行效率以及整个 Spark 集群的健康有效地运行。

  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值