概况能力很重要,需要锻炼
SparkSql之DataFrame和DataSet
SparkSQL概述
Spark SQL是Spark用来处理结构化数据的一个模块,
它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。
Hive是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduc的程序
的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spark SQL的应运而生,它是将
Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!
SparkSQL特点
Integrated
无缝整合了SQL查询和Spark编程。
Uniform Data Access
使用相同的方式连接不同的数据源
Hive Integration
在已有的仓库上直接运行SQL或者HiveQL
Standard Connectivity
通过JDBC或者ODBC来进行连接
DataFrame
在Spark中,DataFrame是一种以RDD为基础的**分布式数据集**,类似于传统数据库中的二维表
格。DataFrame与RDD的主要区别在于,**前者带有schema元信息**,即DataFrame所表示的二维
表数据集的每一列都带有名称和类型。这使得Spark SQL得以洞察更多的结构信息,从而对藏于
DataFrame背后的数据源以及作用于DataFrame之上的变换进行了针对性的优化,最终达到大幅提升
运行时效率的目标。反观RDD,由于无从得知所存数据元素的具体内部结构,Spark Core只能在
stage层面进行简单、通用的流水线优化。
评论0
最新资源