Spark SQL:将sql转换成spark任务
1、Spark SQL:主要处理结构化的数据
通常工业界,需要将非结构化数据转成结构化数据,然后再进一步计算和处理
2、Hive存储数据有几个层次:
table/partition/buckets/hdfs
spark sql可以和hive相结合使用
3、spark streaming中模板称为Dstream
spark sql新的概念:DataFrame,当做一个table-关系表,DataFrame(表)= Schema(表结构) + Data(表数据)
DataFrame:相比RDD多了数据的结构信息,即schema。DataFrame(表)是Spark SQL对结构化数据的抽象。可以将DataFrame看做RDD。
RDD是分布式的 Java对象的集合。DataFrame是分布式的Row对象的集合。
DataFrame优点:除了提供了比RDD更丰富的算子以外,更重要的特点是提升执行效率、减少数据读取以及执行计划的优化
5、DataFrame数据来源:数据源多样
(1)外部数据源(SQLContext):HDFS、网络接口、Mysql。。。
(2)Hive数据源(HiveContext):Hive
两者关系:HiveContext继承于SQLContext,SQLContext支持语法更多,但不支持HQL,HiveContext仅支持HQL
6、DataFrame是分布式table,并不是spark独创,也不装真正的数据,而是转换关系和描述,更像传统数据库中的二维表
 7、RDD与DataFrame区别:
RDD是以行为单位(record)读数据
DataFrame包含了每个record的metadata元数据信息,DataFrame可以对其内部进行列优化

8、RDD与DataFrame相同点:懒惰机制

4、处理数据步骤:
(1)读入:SQLContext、HiveContext
(2)处理:DataFrame
(3)输出:SQLContext、HiveContext

9、DataSet--spark1.6之后推出的新的API,也是一个分布式数据集(在scala中,DataFrame其实是DataSet[Row],这个Row里面包含了多个列信息)
Dataset是数据的分布式集合。Dataset是在Spark 1.6中添加的一个新接口,是DataFrame之上更高一级的抽象。
  1. 提供了RDD的优点(强类型化)以及Spark SQL优化后的执行引擎的优点。
  2. 一个Dataset 可以从JVM对象构造,然后使用函数转换(map, flatMap,filter等)去操作。
  3. Dataset API 支持Scala和Java。 Python不支持Dataset API。
10、spark sql处理核心:Catalyst工作流程(用tree结构来存储sql、DataFrame)
优化点:
(1)基于规则:经验式、启发式优化思路
对于两张表join的方法选择(broadcastHashJoin、sortMergeJoin)
(2)基于代价(join大小表,外排和内排):代价模型,调整join的顺序
11、数据处理工作流程:
(1)Parser
(2)Analyzer
(3)Optimizer
(4)Physical Planning
12、内存管理:Tungsten Off-heap内存管理
突破JVM内存管理限制,分配堆外内存,使得spark实现了自己独立内存管理,避免JVM资源回收引发的性能问题
13、优化
  1. 基于规则优化
  2. 基于代价优化(join)

SparkSQL概念介绍相关推荐

  1. Kylin(一)概念介绍

    Kylin(一)概念介绍 概念解释 数据仓库 商业智能 OLAP OLTP Cube和cuboid 事实表,维度表 维度和度量 即席查询 多维数据模型 星型模型(star schema) 雪花模型(s ...

  2. cocos2d-x一些核心概念介绍

    cocos2d-x一些核心概念介绍 Cocos2d-x中有很多概念,这些概念很多来源于动画.动漫和电影等行业,例如:导演.场景和层等概念,当然也有些有传统的游戏的概念.Cocos2d-x中核心概念:导 ...

  3. FPGA之道(75)静态时序分析(一)基本概念介绍

    文章目录 前言 基本概念介绍 常用时间参数介绍 tsu 建立时间要求 建立时间余量 th 保持时间要求 保持时间余量 tco Maximum frequency (or Minimum period) ...

  4. Lesson 13.2 模型拟合度概念介绍与欠拟合模型的结构调整策略

    一.模型拟合度概念介绍与实验 1.测试集的"不可知"悖论   通过此前课程内容介绍,我们已经知道了机器学习模型主要通过模型在测试集上的运行效果来判断模型好坏,测试集相当于是&quo ...

  5. linux块设备驱动(一)——块设备概念介绍

    linux块设备驱动(一)--块设备概念介绍 本文来源于: 1. http://blog.csdn.net/jianchi88/article/details/7212370 2. http://bl ...

  6. c语言 activemq,activemq概念介绍

    ActiveMQ概念介绍 是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现,消息中间件. 消息中间件: A传递消息到B(功能或者系统),有比较强的耦合 ...

  7. HTML/CSS学习笔记01【概念介绍、基本标签】

    w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...

  8. 《统计自然语言处理》读书笔记 一.基础知识及概念介绍

    最近准备学习自然语言处理相关的知识,主要参考<统计自然语言处理·宗成庆>和<Natural Language Processing with Python>,推荐大家阅读.第一 ...

  9. DNS术语,组件和概念介绍

    DNS术语,组件和概念介绍 2014年2月18日发布 255.4k个意见 DNS 概念LINUX基础常见问题 介绍 DNS或域名系统往往是学习如何配置网站和服务器的一个非常困难的部分.了解DNS如何工 ...

最新文章

  1. Go 语言官网全新改版
  2. nebual的图数据结构
  3. 【题解】Luogu P3674 小清新人渣的本愿
  4. caffe 中base_lr、weight_decay、lr_mult、decay_mult代表什么意思?
  5. 为什么现在是升级到Java 8的最佳时机
  6. 用FTP命令进行文件批量上传或下载
  7. pytnon 学习day-1
  8. JavaScript 打开新页面
  9. 自然人税收管理系统服务器,【轻松学个税申报】自然人税收管理系统客户端操作...
  10. [当人工智能遇上安全] 5.基于机器学习算法的主机恶意代码识别研究
  11. STM32电子钟万年历Proteus仿真_LCD1602显示
  12. java 访客模式,每日一课 | Java 8中的instanceof运算符和访客模式替换
  13. linux xargs
  14. python期中考试试卷分析_期中考试试卷分析与反思
  15. 申请阿里云免费版SSL证书并配置在宝塔Nginx上
  16. [ICCV 2017] Predicting Visual Exemplars of Unseen Classes for Zero-Shot Learning
  17. 茗创:功能磁共振数据处理业务
  18. mapmimax的学习
  19. 因计算机丢失msvcp120d.dll,计算机中缺失MSVCP120D.dll和MSVCR120D.dll怎么解决
  20. 我们该如何应对「竞业协议」?

热门文章

  1. 我的Linux笔记5--我要连网
  2. 文件打包,下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
  3. 使用Pycharm运行TensorFlow,Virtualenv安装TensorFlow
  4. VSCode中使用Git忽略提交代码设置
  5. Codeforces 436D Pudding Monsters
  6. TCP_IP Sockets编程C语言实现第2版 源码下载
  7. Python学习之路9☞面向对象的程序设计
  8. Ajax_HTTP请求以及响应
  9. asp.net 母版页使用方法
  10. jquery与checkbox的checked属性的问题