栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spark SQL, DataFrames and Datasets 简介

Spark SQL, DataFrames and Datasets 简介

Spark SQL 简介 什么是Spark SQL

SparkSQL是Spark用来处理结构化数据的一个模块。

Spark SQL 特性

易整合
Spark SQL将SQL查询与Spark程序无缝混合,可以使用python,java等不同的语言进行代码开发

统一的数据源访问
以相同的方式连接到任何数据源,sparksql后期可以采用一种统一的方式去对接任意的外部数据源,不需要使用不同的Api

兼容HIVE
sparksql可以支持hivesql这种语法 sparksql兼容hivesql

支持标准的数据库连接
sparksql支持标准的数据库连接JDBC或者ODBC


Dataframe

Dataframe 是一个由具名列组成的数据集。它在概念上等同于关系数据库中的表或 R/Python 语言中的 data frame。 由于 Spark SQL 支持多种语言的开发,所以每种语言都定义了 Dataframe 的抽象:

语言主要抽象
ScaleDataset[Row]
JavaDataset< Row >
PythonDataframe
RDataframe
Dataframe VS RDD

Dataframe面向结构化数据,内部有明确的Scheme结构,即列名、列字段类型都是已知的;RDD面向的非结构化数据Dataframe引入了off-heap,大量的对象构建直接使用操作系统层面上的内存,不再使用heap堆中的内存,这样一来heap堆中的内存空间就比较充足,不会导致频繁GC,程序的运行效率比较高;而构建大量的java对象占用了大量heap堆空间,导致频繁的垃圾回收GC。Dataframe引入了schema,后期spark程序中的大量对象在进行网络传输的时候,只需要把数据的内容本身进行序列化就可以,数据结构信息可以省略掉。这样一来数据网络传输的数据量是有所减少,数据的序列化和反序列性能开销就不是很大了;而RDD数据的序列化和反序列性能开销很大


Datasets

Dataset 是分布式的数据集合,在 Spark 1.6 版本被引入,它具备RDD(强类型,支持Lambda函数)和Spark SQL优化的执行引擎的优点。
在 Scala 和 Java 语言中使用。Dataset API有Scala和Java两种版本。Python不支持Dataset API。但是,由于Python的动态特性,Dataset API的许多优点已经可用。R语言类似。

RDD 、Dataframe、Dataset区别


参考资料
    Spark SQLSpark SQL,Dataframes and Datasets Guide
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753314.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号