SparkSQL学习01(概念)

Spark-SQL

集成性

Spark SQL允许使用DataFream API进行Spark程序的结构化数据处理,支持Java、Scala、Python、R语言操作

统一数据源

Spark提供了多种数据源,比如,Hive、MySQL、JSON、Parquet、CSV等

集成Hive

SparkSQL支持HiveQL语法以及Hive UDF,也可以操作Hive数仓。

连通性

支持JDBC和ODBC的连接

Spark-SQL使用

DataFrame(重点)

是Spark基本的API,在Spark1.3推出后,得到广泛应用,主要针对于那些对Spark Core操作比较繁琐的代码,实现SQL语句的开发,同时Spark在推出DataFrame后,到spark1.6以后又推出了Spark的DataSet

DataFrame = Dataset[Row]

在这里插入图片描述
共性:

1、RDD、DataFrame、Dataset都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利;

2、三者都有惰性机制。在进行创建、转换时(如map方法),不会立即执行;只有在遇到Action时(如foreach) ,才会开始遍历运算。极端情况下,如果代码里面仅有创建、转换,但后面没有在Action中使用对应的结果,在执行时会被直接跳过;

3、三者都有partition的概念,进行缓存(cache)操作、还可以进行检查点(checkpoint)操作;

4、三者有许多相似的函数,如map、filter,排序等;

RDD转换DataFrame(重点)

为什么要转换?

其实我们可以想象一下,如果使用RDD读取HDFS数据过来,那么能用SQL直接操作,那就相当简单了,并且很符合大众化开发,同时DF执行效率要高于RDD的方式。

转换DF两种方式:1. 编程接口方式 2. 反射方式

使用的方式:首先创建DF,然后根据DF创建临时表,再去执行SQL语句

DataFrame的数据源(重点)

读取(Load):如果使用load的方式,那么不在任何的修改前提下,默认读取的是Parquet文件数据格式,想要修改读取的数据源,需要使用format方法,来改变读取数据源

存储(Save):使用Save的话,默认存储格式是Parquet格式,如果改变格式,需要使用format方法,同时也可以存储MySQL数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值