SparkSQL入门
介绍
- 构建在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的子类,提供了一些特殊的方法与函数,比如开窗函数等
- spark2.0以后,将两者进行了合并成为SparkSession,SparkSession构建会使用工厂方法.
val spark:SparkSession=SparkSession.builder().appName("Demo").master("local").getOrCreate()
SparkSQL入门相关推荐
- PySpark | SparkSQL入门 | DataFrame入门
文章目录 一.快速入门 1. 什么是SparkSQL 2. 为什么要学习SparkSQL 3. SparkSQL特点 二.SparkSQL概述 1. SparkSQL和Hive的异同 2. Spark ...
- SparkSQL入门_1
概述 DataFrame SQL query ReadWrite Example 概述 先说说准备工作吧. 目前使用的是伪分布式模式,hadoop,spark都已经配置好了. 数据仓库采用的是hive ...
- 大数据笔记--SparkSQL(第一篇)
目录 一.Spark Sql 1.概述 2.由来 3.Spark SQL特点 4.为什么SparkSQL的性能会的得到这么大的提升? Ⅰ.内存列存储 二.SparkSql入门 1.概述 2.创建Dat ...
- 2022年Spark基础学习笔记目录
一.Spark学习笔记 在私有云上创建与配置虚拟机 Spark基础学习笔记01:初步了解Spark Spark基础学习笔记02:Spark运行时架构 Spark基础学习笔记03:搭建Spark单机版环 ...
- 27.大数据学习之旅——SparkStreamingspark mllib数据挖掘与机器学习
SparkStreaming介绍 概述 Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数 据的能力,以吞吐量高和容错能力强著称. SparkSt ...
- 惊了!10万字的Spark全文!
Hello,大家好,这里是857技术社区,我是社区创始人之一,以后会持续给大家更新大数据各组件的合集内容,路过给个关注吧!!! 今天给大家分享一篇小白易读懂的 Spark万字概念长文,本篇文章追求的是 ...
- Python玩转大数据-张敏-专题视频课程
Python玩转大数据-221人已学习 课程介绍 该课程采用时下后的编程语言Python讲解,囊括了当前火的大数据技术Spark/Hadoop/Hive知识,学习环境是基于Docker ...
- Spark入门实战系列--6.SparkSQL(中)--深入了解SparkSQL运行计划及调优
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.1 运行环境说明 1.1.1 硬软件环境 l 主机操作系统:Windows 64位, ...
- qt5编程入门 第2版_2小时入门SparkSQL编程
一,RDD,DataFrame和DataSet DataFrame参照了Pandas的思想,在RDD基础上增加了schma,能够获取列名信息. DataSet在DataFrame基础上进一步增加了数据 ...
最新文章
- presto能连接mysql和hive吗_Presto连接Hive
- 各种函数调用约定及浮点数传参
- 2019微生物组—宏基因组分析专题培训开课啦!
- 苹果首任AI总监Ruslan Salakhutdinov:如何应对深度学习的两大挑战?(附视频)
- 如何修复重编译Datapump工具expdp/impdp
- python 字符编码判断 chardet评测
- Typesafe公司正式更名为Lightbend公司
- linux errno定义
- WSAGetLastError() 返回的错误
- 说说如何抛出Java异常
- flowable 查询完成的流程_中注协正在调试注册会计师成绩查询系统?
- 开发部程序员绩效考核办法
- Redis桌面管理工具RedisDesktopManager
- 我的健康我做主”芋头有奇特功效-抗…
- 深度学习框架江湖群侠传
- 最终幻想X-2国际版+最终任务
- 来看一个费解而有趣的c++现象
- mysql索引入门-黑马
- 【PTA】名人堂与代金券
- 天正建筑t20 v5.0破解版|t20天正建筑中文破解版下载v5.0(附破解补丁+注册表)
热门文章
- matlab如何判断两个矩阵的元素是否相同_蚁群算法及其MATLAB实现
- div和div之间画横线,如何在两个div之间画一条线?
- android 多图片优化工具,总结Android App内存优化之图片优化
- 网站备案中遇到的问题 名词和解释 大全
- python中相对路径_Python中的绝对路劲和相对路径
- php mongodb _id,mongodb php findone()由ID
- VUE 浏览器最强插件——极简插件
- 03、了解自动配置原理笔记
- suse11 mysql 5.7_SUSE Linux系统中单实例二进制方式安装MySQL 5.7.22
- c语言libjpeg处理图像,解决使用 libjpeg 保存图片时因磁盘写入失败导致程序退出的有关问题...