Spark SQL内核剖析(一)

本文参考了《Spark SQL内核剖析》(朱峰、张韶全、黄明等著)的目录结构和内容,这本书主要集中在对SQL内核实现的剖析上,从源码实现上学习分布式计算和数据库领域的相关技术,非常值得有相关需求的专业人士学习和购买。我写这篇文章的目的也是基于此做一个关于Spark SQL的学习以及分享了一些自己的理解。

什么是Spark SQL?

Spark SQL是近年来SQL-on-Hadoop解决方案(包括Hive、Presto和Impala等)中的佼佼者,结合了数据库SQL处理和Spark分布式计算模型两个方面的技术,目标是取代传统的数据仓库。

1. Spark 基础知识

在这一节简单介绍了Spark涉及到的几个简单技术,包括RDD编程模型、DataFrame和DataSet用户接口。

1.1. RDD 编程模型

RDD是Spark的核心数据结构,全称是弹性分布式数据集(Resilient Distributed Dataset),其本质是一种分布式的内存抽象,表示一个只读的数据分区(Partition)集合。

至于RDD的创建、计算和转换等操作的原理和技术不在本文的介绍范围内,有兴趣的读者可以自行了解,我们只需要知道RDD作为弹性数据集可以很方便地支持MapReduce应用、关系型数据处理、流式数据处理和迭代性应用(图计算、机器学习等)。

1.2. DataFrame 与 DataSet

Spark在RDD的基础上,提供了DataFrame和DataSet用户编程接口,其实这两个就是数据集的封装,以方便用户通过对象方法和转换操作数据集。虽然DataFrame和DataSet也不是我们关注的重点,但我对于这两者的不同与统一比较感兴趣,所以搜集了一些资料。

Dataset可以认为是DataFrame的一个特例(有相反的说法),主要区别是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丧心病狂の程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值