目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

大数据全系列 教程

1869个小节阅读:465.1k

收藏
全部开发者教程

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(240)
赞(0)

SparkSQL_数据抽象

三者的相同点

  1. RDD、DataFrame、DataSet全都是Spark平台下的分布式弹性数据集,为处理超大型数据提供便利;
  2. 它们都有partition的概念;
  3. 它们有许多共同的函数,如filter,map等;
  4. 三者都有惰性机制,在进行创建、转换,如map方法时,不会立即执行,只有在遇到Action算子时,才会开始执行运算;
  5. 三者都会根据 Spark 的内存情况自动缓存运算,这样即使数据量很大,也不用担心会内存溢出;
  6. 在对DataFrame和Dataset进行操作时,许多操作都需要这个包:import spark.implicits._,在创建好SparkSession对象后尽量直接导入。
  7. DataFrame和DataSet均可使用模式匹配获取各个字段的值和类型

三者不同点:

  1. SparkCore - RDD
  2. Spark1.0
  3. 无标准数据结构,存储什么数据均可
  4. 一般和Spark Mllib同时使用
  5. 不支持SparkSql操作
  6. SparkSQL - DataFrame
  7. Spark1.3
  8. 二维表数据结构
  9. DataFrame每一行的类型固定为Row,每一列的值没法直接访问,只有通过解析才能获取各个字段的值
  10. DataFrame其实就是DataSet的一个特例 type DataFrame = Dataset[Row]
  11. 支持SparkSql操作
  12. SparkSQL -DataSet
  13. Spark1.6
  14. Dataset中,每一行是什么类型是不一定的,在自定义了case class之后可以很自由的获得每一行的信息。
  15. 支持SparkSql操作

扩展:

  1. SparkSQL 其实有3类数据抽象对象 • SchemaRDD对象(已废弃) • DataSet对象:可用于Java、Scala语言。最早16 • DataFrame对象:可用于Java、Scala、Python、R。最早15

  2. Spark2.0版本,将DataFrame和DataSet进行合并。其底层均是DataSet对象

实时效果反馈

1.以下选项中哪个不是SparkSQL的数据抽象是:

A RDD

B DataSet

C DataFrame

答案:

1=>A

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2