spark点点滴滴 —— 认识spark sql的DataFrame和DataSet

本文详细介绍了Spark SQL中的DataFrame和DataSet,对比了它们与RDD的区别,阐述了DataFrame的Schema特性以及其在数据处理中的优势。讨论了DataFrame的性能优化,如列式存储。还介绍了DataSet作为强类型API的特性和转换方法,包括从RDD转换和编程指定。通过实例展示了如何构建和操作DataSet。
摘要由CSDN通过智能技术生成

概述

spark的DataFrames和DataSets是spark SQL中的关键概念,相比于RDD,DataFrame更能描述数据类型,因此是spark sql的基础类型,同时在spark 2.0.x及其以后的版本中,spark的机器学习也会逐渐替换成基于DataFrame的api,所有我们有必要了解spark的DataFrame相关概念。
spark sql在spark框架中的位置:
这里写图片描述
我们可以看到,spark sql是建立在spark框架之上的一个大数据关系型数据处理系统,和impala类似。
其核心部分有两个:DataFrame API和Catalyst引擎,SparkSQL的优化器系统Catalyst和大多数当前的大数据SQL处理引擎设计基本相同(Impala、Presto、Hive(Calcite)等),本篇我们重点看看DataFrame的基本原理和使用。

DataFrame基本原理

和RDD的比较

我们知道,RDD是spark早期很重要的一个概念,是数据的immutable distributed的集合,由不同节点上的partition组成。DataFrame和RDD类似,也是数据的不可变分布式集合。不同的是,数据被组织成带名字的列,就像关系型数据库中的表。是一种有结构的高级别抽象,与之相应的提供了一种领域特定语言(DSL)API来操作这些分布式数据。
这里写图片描述
DataFrame直观上很像是RDDs的加强版,它和RDDs在数据存储上最大的区别就在于,DataFrame是有Schema的,通俗的讲,就是上图中蓝色框住的那个表头。不要小看这一点,对于复杂的数据类型,DataFrame的这种结构可以使编程大大简化。

在spark2.0后,DataFrame的API和DataSet的API合并统一了,现在只需要处理DataSet相关API

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值