美文网首页
Spark-SparkSQL介绍

Spark-SparkSQL介绍

作者: 布莱安托 | 来源:发表于2020-07-06 20:01 被阅读0次

SparkSQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrameDataSet,并且作为分布式SQL查询引擎使用。

不同于Hive将HiveQL转换成MapReduce然后提交执行,SparkSQL是将SQL语句转换成RDD然后提交集群执行,执行效率大大提升。

SQL的特点

  1. 易整合
  2. 统一的数据访问方式
  3. 兼容Hive
  4. 标准的数据连接

DataFrame

与RDD类似,DataFrame也是一个分布式数据容器。但是DataFrame更像传统数据库的二维表格,除了数据之外还记录数据的结构信息,即schema。

同时,与Hive类似,DataFrame也支持嵌套数据类型(struct,array和map)。

从API易用性的角度看DataFrame API提供的是一套高层的关系操作,比RDD API要更加友好。

对于RDD来说,它只关心是什么类型的数据:

Person
Person
Person
Person

而对于DataFrame,它呈现了数据的每一列的名字以及数据类型:

Name Age
String Int
String Int

DataFrame为数据提供了Schema的视图,可以把它当做是数据库中的一张表,DataFrame也是懒执行的,但是性能要比RDD要高,主要原因是:

  • 优化的执行计划:查询计划通过Spark Catalyst Optimiser进行优化
image.png

例如:

users.join(events, users("id") === events("user_id")).filter(events("date") > "2019-12-01")

执行计划为:

  • logical plan
image.png
  • optimized plan
image.png
  • optimized plan with intelligent data sources
image.png

例子中展示了一个对用户事件分析的操作。两个DataFrame进行join后进行filter过滤,如果按照逻辑计划的话会先进行join,再进行filter,而join涉及到了executor间的网络传输,是一个开销比较大的操作。

而SparkSQL优化器则将filter操作下推,先对DataFrame进行过滤,在进行join,这样就避免了不必要的数据的传输,提高了性能。

DataSet

  1. 是DataFrame API的一个扩展。
  2. 用户友好的API风格,既具有类型安全检查也具有DataFrame的查询优化特性。
  3. DataSet支持编解码器,当需要访问非堆上数据是可以避免反序列化整个对象,提高了效率。
  4. case class可以用来在DataSet中定义数据的结构信息,类中的每个属性名称直接映射到DataSet中的字段名称。
  5. DataFrame是DataSet的特例,DataFrame=DataSet[Row],所以通过as方法可以将DataFrame转换为DataSet。而Row是一个类型,用来定义结构化的一行数据。
  6. DataSet是强类型的。

相关文章

  • Spark-SparkSQL介绍

    SparkSQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet...

  • Runtime介绍---术语介绍

    1. 什么是Runtime Runtime又叫运行时,是一套C语言的API。 我们平时编写的OC代码,底层都是基于...

  • 介绍

    万物终有一天会消失殆尽,诸神出卖黎明,光明为黑暗所湮灭,日月皆痕,海潮鸣泣,幼雏嚎啕,生灵涂炭。 托里奥世纪第20...

  • 介绍😊

    大家好,我是beth,初入简书,不邀自来,还请各位见谅! 先说说我是怎么想着来的吧?这不是刚过了一个寒假嘛...

  • 介绍

    在这个世界上还有三个家族他们不受各个国家联合国管。但他们身上有着使命分别是帝国家族曲国家族圣国家族。他们隐藏在一个...

  • 介绍

    云轩:主角,星罗帝国的二皇子。从小就不能练气,被人们称为废物。直到12岁的时候,自己的武魂觉醒才能练气,双...

  • 介绍

    万花阁 神秘至极的组织,亦正亦邪。万花阁的人行动隐秘,至今未被发现所在地。听说组成成员均以花来命名。所到之处,皆留...

  • 介绍

    此书命曰元.八洲传。属九洲四传第二部。第一部,上古往事。上古往事乃元八洲传外传。前两部为战胜心魔,而第三部,大梦...

  • 介绍

    千肆篇 7月的天气燥热,但在红杏阁里这份燥热就别有一番风味。漫天的胭脂水粉的香味变成了调味剂,女人们千姿百媚,在...

  • 介绍

    该文集属于收录文集,里面的内容不全是本人创作,有收录个人喜欢的内容。 *(偏个人向)

网友评论

      本文标题:Spark-SparkSQL介绍

      本文链接:https://www.haomeiwen.com/subject/qzbgqktx.html