介绍

  • 构建在SparkCore基础之上的一个SQL计算模块
  • 前身叫shark,基于hive,hive发展慢,制约了shark的发展
  • 独立出来新的项目spark sql
  • 处理结构化数据

Spark SQL 是用于结构化数据处理的 Spark 模块。与基本的 Spark RDD API 不同,Spark SQL 提供的接口为 Spark 提供了有关数据结构和正在执行的计算的信息。在内部,Spark SQL 使用此额外信息来执行额外的优化。有几种方法可以与 Spark SQL 进行交互,包括 SQL 和数据集 API。计算结果时,使用相同的执行引擎,与用于表示计算的 API/语言无关。这种统一意味着开发人员可以轻松地在不同 API 之间来回切换,基于这些 API 提供了表达给定转换的最自然方式。

Spark SQL 编程模型

DataFrame和Dataset是SparkSQL中的编程模型。DataFrame和Dataset我们都可以理解为是一张mysql中的二维表,表有什么?表头,表名,字段,字段类型。RDD其实说白了也是一张二维表,但是这张二维表相比较于DataFrame和Dataset却少了很多东西,比如表头,表名,字段,字段类型,只有数据。

​ Dataset是在spark1.6.2开始出现出现的api,DataFrame是1.3的时候出现的,早期的时候DataFrame叫SchemaRDD,SchemaRDD和SparkCore中的RDD相比较,就多了Schema,所谓约束信息,元数据信息。

​ 一般的,将RDD称之为Spark体系中的第一代编程模型;DataFrame比RDD多了一个Schema元数据信息,被称之为Spark体系中的第二代编程模型;Dataset吸收了RDD的优点(强类型推断和强大的函数式编程)和DataFrame中的优化(SQL优化引擎,内存列存储),成为Spark的最新一代的编程模型。

RDD

弹性分布式数据集,是Spark对数据进行的一种抽象,可以理解为Spark对数据的一种组织方式,更简单些说,RDD就是一种数据结构,里面包含了数据和操作数据的方法

从字面上就能看出的几个特点:
a. 弹性: ​
数据可完全放内存或完全放磁盘,也可部分存放在内存,部分存放在磁盘,并可以自动切换
​ RDD出错后可自动重新计算(通过血缘自动容错) ​ 可checkpoint(设置检查点,用于容错),可persist或cache(缓存)
​ 里面的数据是分片的(也叫分区,partition),分片的大小可自由设置和细粒度调整
b. 分布式:
​ RDD中的数据可存放在多个节点上
c. 数据集: ​
数据的集合,没啥好说的

​ 相对于与DataFrame和Dataset,RDD是Spark最底层的抽象,目前是开发者用的最多的,但逐步会转向DataFrame和Dataset(当然,这是Spark的发展趋势)

编程入口

1. spark2.0以前,有两个入口

  • sql Context
  • hive Context 是sqlContext的子类,提供了一些特殊的方法与函数,比如开窗函数等
  1. spark2.0以后,将两者进行了合并成为SparkSession,SparkSession构建会使用工厂方法.
  val spark:SparkSession=SparkSession.builder().appName("Demo").master("local").getOrCreate()

SparkSQL入门相关推荐

  1. PySpark | SparkSQL入门 | DataFrame入门

    文章目录 一.快速入门 1. 什么是SparkSQL 2. 为什么要学习SparkSQL 3. SparkSQL特点 二.SparkSQL概述 1. SparkSQL和Hive的异同 2. Spark ...

  2. SparkSQL入门_1

    概述 DataFrame SQL query ReadWrite Example 概述 先说说准备工作吧. 目前使用的是伪分布式模式,hadoop,spark都已经配置好了. 数据仓库采用的是hive ...

  3. 大数据笔记--SparkSQL(第一篇)

    目录 一.Spark Sql 1.概述 2.由来 3.Spark SQL特点 4.为什么SparkSQL的性能会的得到这么大的提升? Ⅰ.内存列存储 二.SparkSql入门 1.概述 2.创建Dat ...

  4. 2022年Spark基础学习笔记目录

    一.Spark学习笔记 在私有云上创建与配置虚拟机 Spark基础学习笔记01:初步了解Spark Spark基础学习笔记02:Spark运行时架构 Spark基础学习笔记03:搭建Spark单机版环 ...

  5. 27.大数据学习之旅——SparkStreamingspark mllib数据挖掘与机器学习

    SparkStreaming介绍 概述 Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数 据的能力,以吞吐量高和容错能力强著称. SparkSt ...

  6. 惊了!10万字的Spark全文!

    Hello,大家好,这里是857技术社区,我是社区创始人之一,以后会持续给大家更新大数据各组件的合集内容,路过给个关注吧!!! 今天给大家分享一篇小白易读懂的 Spark万字概念长文,本篇文章追求的是 ...

  7. Python玩转大数据-张敏-专题视频课程

    Python玩转大数据-221人已学习 课程介绍         该课程采用时下后的编程语言Python讲解,囊括了当前火的大数据技术Spark/Hadoop/Hive知识,学习环境是基于Docker ...

  8. Spark入门实战系列--6.SparkSQL(中)--深入了解SparkSQL运行计划及调优

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.1  运行环境说明 1.1.1 硬软件环境 l  主机操作系统:Windows 64位, ...

  9. qt5编程入门 第2版_2小时入门SparkSQL编程

    一,RDD,DataFrame和DataSet DataFrame参照了Pandas的思想,在RDD基础上增加了schma,能够获取列名信息. DataSet在DataFrame基础上进一步增加了数据 ...

最新文章

  1. presto能连接mysql和hive吗_Presto连接Hive
  2. 各种函数调用约定及浮点数传参
  3. 2019微生物组—宏基因组分析专题培训开课啦!
  4. 苹果首任AI总监Ruslan Salakhutdinov:如何应对深度学习的两大挑战?(附视频)
  5. 如何修复重编译Datapump工具expdp/impdp
  6. python 字符编码判断 chardet评测
  7. Typesafe公司正式更名为Lightbend公司
  8. linux errno定义
  9. WSAGetLastError() 返回的错误
  10. 说说如何抛出Java异常
  11. flowable 查询完成的流程_中注协正在调试注册会计师成绩查询系统?
  12. 开发部程序员绩效考核办法
  13. Redis桌面管理工具RedisDesktopManager
  14. 我的健康我做主”芋头有奇特功效-抗…
  15. 深度学习框架江湖群侠传
  16. 最终幻想X-2国际版+最终任务
  17. 来看一个费解而有趣的c++现象
  18. mysql索引入门-黑马
  19. 【PTA】名人堂与代金券
  20. 天正建筑t20 v5.0破解版|t20天正建筑中文破解版下载v5.0(附破解补丁+注册表)

热门文章

  1. matlab如何判断两个矩阵的元素是否相同_蚁群算法及其MATLAB实现
  2. div和div之间画横线,如何在两个div之间画一条线?
  3. android 多图片优化工具,总结Android App内存优化之图片优化
  4. 网站备案中遇到的问题 名词和解释 大全
  5. python中相对路径_Python中的绝对路劲和相对路径
  6. php mongodb _id,mongodb php findone()由ID
  7. VUE 浏览器最强插件——极简插件
  8. 03、了解自动配置原理笔记
  9. suse11 mysql 5.7_SUSE Linux系统中单实例二进制方式安装MySQL 5.7.22
  10. c语言libjpeg处理图像,解决使用 libjpeg 保存图片时因磁盘写入失败导致程序退出的有关问题...