专栏首页Spark学习技巧Spark SQL的几个里程碑!

Spark SQL的几个里程碑!

本文讲讲Spark SQL的几个里程碑的更新升级。

1. spark 1.0.0诞生了Spark SQL

官方版本是spark 1.0.0引入的Spark SQL模块。当时这个模块的核心实际上就是一种新类型的RDD,叫做SchemaRDD。SchemaRDD就是类型为ROW的RDD,但同时又包含了一个描述每一列数据类型的schema信息。SchemRDD也可类似于传统数据库的一张表。SchemaRDD可以从已有的RDD创建,可以是Parquet文件,json数据集或则HiveQL生成。该版本引入是在2014年五月30日。

2. Spark 1.2.0诞生了ML机器学习库

Ml机器学习库是基于SchemaRDD的,后来的版本是基于Dataframe的,可以直接与Spark SQL进行交互。

3. Spark 1.3.0 诞生了Dataframe

Spark 1.3的时候做了一个重大变革。就是将SchemaRDD重命名为了DataFrame,主要原因是DataFrame不再直接继承自RDD,而是自己维护和实现了自己的功能函数。但是DataFrame可以通过调用 .rdd 转化为RDD。

4. spark 1.6.0诞生了Dataset和SparkSession

Spark 1.6的时候也是有了重大调整,增加了Dataset的概念,类似RDD,在享受Spark SQL执行引擎性能优化的同时允许用户使用自定义对象和lambda函数。

在引入Dataset的同时,也引入了SparkSession,也即是会话管理功能,允许不同用户可以在使用不同配置和临时表的情况下共享统一的集群。

5. Spark 2.0.0诞生了Strcutured Streaming

Spark 2.0开始,Dataset API和Dataframe API统一了。Scala版本,DataFrame被类型定义成Dataset[Row],java版本必须是要Dataset[Row]代替Dataframe。

SparkSession已经完全替换掉了旧的SQLContext和HiveContext。SQLContext和HiveContext为了保持兼容还在被保留。

上线了Structured Streaming。这个是Spark 流处理发展的主要方向,底层是基于Spark SQL 和 Catalyst 优化器,让用户像使用静态Dataset开发离线处理任务一样使用流Dataset开发流处理业务,这个就是依赖于Catalyst 优化器自动增量的查询计划。

从自Spark 2.x依赖的更新状态来看,Spark SQL及Catalyst 优化器已经成为Spark框架努力的方向,主要体现在:

1). 逐步废弃掉基于RDD的mllib机器学习库,着重发展基于DataFrame的ml库。目前是,基于RDD的机器学习库处于保留状态,后期会废弃。

2). Spark2.4.0 未对Spark Streaming(RDD-based)做进一步更新。Structured Streaming(dataframe-based)被大力优化更新,也有取代Spark Streaming之势头。

所以,spark 使用及爱好者要大力掌握好Spark SQL和Structured Streaming。

那么是不是就不要深入学习Spark Core和Spark Streaming了呢?

答案是否定的!

Spark Core是Spark SQL的基石,所以很有必要掌握好Spark Core。

Spark SQL和Structured Streaming处理的是结构化数据,非结构化数据,还是需要Spark Core和Spark Streaming进行解析处理。

Structured Streaming 的功能还不够完善,限制颇多,比如多流join之后不能聚合等,所以Spark Streaming的给用户以灵活处理的接口还是有用武之地的。

本文分享自微信公众号 - Spark学习技巧(bigdatatip)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 超越Spark,大数据集群计算的生产实践

    Spark拥有一个庞大的、不断增长的社区,还有在企业环境中不可或缺的生态系统。这些生态系统提供了不同生产环境案例所需的许多功能。一般来说,Spark应用做的是机...

    Spark学习技巧
  • 干货 | 如何成为大数据Spark高手

    Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库、流处理和...

    Spark学习技巧
  • Spark设计理念和基本架构

    Spark学习技巧
  • 深入浅出理解 Spark:环境部署与工作原理

    ? 一、Spark 概述 Spark 是 UC Berkeley AMP Lab 开源的通用分布式并行计算框架,目前已成为 Apache 软件基金...

    腾讯技术工程官方号
  • Spark快速大数据分析(图灵程序设计丛书)

    本书由 Spark 开发者及核心成员共同打造,讲解了网络大数据时代应运而生的、能高效迅捷地分析处理数据的工具——Spark,它带领读者快速掌握用 Spark 收...

    用户3157710
  • 【Spark框架】运用Spark加速实时数据分析

    Apache Hadoop是一个成熟的开发框架,其连接着庞大的生态系统,并且得到了Cloudera、Hortonwork、Yahoo这些卓越机构的支持与贡献,并...

    陆勤_数据人网
  • 什么是 Apache Spark?大数据分析平台详解

    自从 Apache Spark 2009 年在 U.C. Berkeley 的 AMPLab 默默诞生以来,它已经成为这个世界上最重要的分布式大数据框架之一。S...

    加米谷大数据
  • 什么是 Apache Spark?大数据分析平台如是说

    自从 Apache Spark 2009 年在 U.C. Berkeley 的 AMPLab 默默诞生以来,它已经成为这个世界上最重要的分布式大数据框架之一。S...

    小莹莹
  • 什么是 Apache Spark?大数据分析平台详解

    自从 Apache Spark 2009 年在 U.C. Berkeley 的 AMPLab 默默诞生以来,它已经成为这个世界上最重要的分布式大数据框架之一。S...

    企鹅号小编
  • 【学习】如何从菜鸟成长为Spark大数据高手?

    Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算...

    小莹莹

扫码关注云+社区

领取腾讯云代金券