前言
大家好,我是DJ丶小哪吒,我又来跟你们分享知识了。小编是一名软件工程系大数据应用开发专业大二的学生,对软件开发有着浓厚的兴趣。喜欢与人分享知识。做博客的目的就是为了能与 他 人知识共享。最近小编也在学习spark,对课堂上的内容做了一些总结。来与大家分享。由于水平有限。博客中难免会有一些错误。如有 纰 漏之处,欢迎大家在留言区指正。小编也会及时改正。

DJ丶小哪吒又来与各位分享知识了。今天我们不飙车,今天就静静的坐下来,我们来聊一聊关于sparkSQL。准备好茶水,听老朽与你娓娓道来。

看了这篇文章,你还敢说你不了解sparkSQL???
进入正题
进入正题
进入正题…预备备

1、Spark SQL概述

1.1、Spark介绍

Spark SQL是Spark用来处理结构化数据的一个模块
Spark SQL还提供了多种使用方式,包括DataFrames API和Datasets API。但无论是哪种API或者是编程语言,它们都是基于同样的执行引擎,因此你可以在不同的API之间随意切换,它们各有各的特点。

1.2、Spark SQL的特点

  1. 易整合
    可以使用java、scala、python、R等语言的API操作。

  2. 统一的数据访问
    连接到任何数据源的方式相同。

  3. 兼容Hive
    支持hiveHQL的语法。
    兼容hive(元数据库、SQL语法、UDF、序列化、反序列化机制)

  4. 标准的数据连接
    可以使用行业标准的JDBC或ODBC连接。

1.3、SQL优缺点

●SQL的优点
表达非常清晰, 易看懂
难度低、易学习。
SQL的缺点
复杂分析,SQL嵌套较多:试想一下3层嵌 套的 SQL维护起来应该挺力不从心的吧
机器学习较难:试想一下如果使用SQL来实 现机器学习算法也挺为难的吧

1.4、Hive和SparkSQL对比

Hive是将SQL转为MapReduce
SparkSQL可以理解成是将SQL解析成’RDD’ + 优化再执行

看了这篇文章,你还敢说你不了解sparkSQL???

2、Spark SQL抽象

2.1. DataFrame

DataFrame是一种以RDD为基础的带有Schema元信息的分布式数据集,类似于传统数据库的二维表格 。
看了这篇文章,你还敢说你不了解sparkSQL???

1.2. DataSet

●什么是DataSet
DataSet是保存了更多的描述信息,类型信息的分布式数据集
与RDD相比,保存了更多的描述信息,概念上等同于关系型数据库中的二维表。
与DataFrame相比,保存了类型信息,是强类型的,提供了编译时类型检查,
调用Dataset的方法先会生成逻辑计划,然后被spark的优化器进行优化,最终生成物理计划,然后提交到集群中运行!
看了这篇文章,你还敢说你不了解sparkSQL???
DataSet包含了DataFrame的功能,
Spark2.0中两者统一,DataFrame表示为DataSet[Row],即DataSet的子集。
DataFrame其实就是Dateset[Row]
看了这篇文章,你还敢说你不了解sparkSQL???

2.3.RDD、DataFrame、DataSet的区别

●结构图解
看了这篇文章,你还敢说你不了解sparkSQL???

  • RDD[Person]
    以Person为类型参数,但不了解 其内部结构。

  • DataFrame
    提供了详细的结构信息schema列的名称和类型。这样看起来就像一张表了

  • DataSet[Person]
    不光有schema信息,还有类型信息


好了,以上内容就到这里了。你学到了吗。欢迎路过的朋友关注小编哦。各位朋友关注点赞是小编坚持下去的动力。小编会继续为大家分享更多的知识哦~~~。

我是DJ丶小哪吒。是一名互联网行业的工具人,小编的座右铭:“我不生产代码,我只做代码的搬运工”…哈哈哈,我们下期见哦,Bye~

成功者绝不放弃,放弃者绝不会成功。

相关文章:

  • 2022-12-23
  • 2021-07-13
  • 2021-11-16
  • 2021-04-14
  • 2021-12-03
  • 2023-02-17
  • 2021-06-28
  • 2021-09-03
猜你喜欢
  • 2022-02-08
  • 2022-01-01
  • 2021-11-18
  • 2021-10-29
  • 2021-10-08
  • 2021-06-07
  • 2021-10-23
相关资源
相似解决方案