Spark SQL

Spark SQL:不仅是数据仓库的引擎,而且也是数据挖掘的引擎,更为重要的事Spark SQL是数据科学计算和分析引擎。

Hive+Spark SQL+DataFrame组成了目前国内的大数据主流技术组合:

Hive:负责低成本的数据仓库存储

Spark SQL:负责高速的计算

DataFrame:负责复杂的数据挖掘

DataFrame与RDD的差异:

RDD是以Record为单位的,Spark SQL在优化的时候无法了解Record内部细节,所以无法进行更深度的优化,这极大限制了SparkSQL的性能提升。

DataFrame是以列为单位的,包含每个Record的元数据信息,也就是说DataFrame在优化时基于列内部的优化,而不像RDD一样,只能基于行来进行优化。

Spark使用方式:

1、通过Spark-shell

2、使用Spark-sql命令终端

3、Spark的Web UI

DataFrame基本操作实战:

1、可以从外部文件构建DataFrame

2、在DataFrame上进行比较常用的操作

3、多个DataFrame之间的操作

4、DataFrame的持久化操作

Spark SQL操作多种数据源:

Spark SQL可加载Parquet、Json、文件文本等各种数据源格式的数据;Spark SQL可以操作各种数据库,eg:Hive、Json数据集、Hbase、MySQL、MongoDB等。

1、数据加载:在SQLContext中通过parquetFile、jsonFile、load、jdbc等方法分别加载Parquet、json、文本文件或数据库的数据来创建DataFrame。

2、保存:在DataFrame中通过saveAsParquetFile、saveAsTable、save把DataFrame中的数据保存到Parquet、json、文本文件或数据库中。

 

Parquet列式存储:

列式存储指数据是按列存储的,每一列数据单独存放,列式存储以流的方式在列中存储所有数据,主要适合批量数据处理和即席查询。

 

Apache Thrift:可伸缩的跨语言服务开发框架。最初有Facebook用做系统内各语言之前的RPC通信。

Apache Thrift采用接口描述语言定义并创建服务,支持可扩展的垮语言服务开发,所包含的代码审查引擎可以在多种语言中使用,eg:java、C++、Python、PHP、Ruby、Perl、C#等,其传输数据采用二进制格式,相对XML和JSON体积更小,对于高并发、大数据量和多语言的环境更有优势。

Thrift工作机制:

可以实现从Web的角度访问SparkSql,以下是非常经典的SparkSQL企业应用实现架构:

JDBC/ODBC -> Thrift Server -> Spark SQL -> Hive数据仓库

Thrift Server在JDBC/ODBC 和 Spark SQL之间架设了一座桥梁,通过JDBC/ODBC接口访问Thrift Server,Thrift Server 访问Spark SQL,对用户而言,类似通过JDBC/ODBC访问Oracle数据库,用户通过JDBC/ODBC 的接口访问Thrift Server,相当于直接访问操作Hive数据仓库中的数据。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值