SparkSQL
SparkSQL
是什么
SparkSQL是spark的一个模块,专门用于处理结构化数据
特点
-
兼容SparkCore
SparkSQL允许在同一个Spark程序中,混合使用算子操作和SQL操作,并且支持使用Scala、Java、SQL、R进行编程 -
提供通过一的数据访问方式
可以使用SparkSQL直接对各类数据源进行读写操作
文本: TEXT CSV JSON
列式存储: ORC Parquet
JDBC: MySQL Oracle -
SparkSQL完全兼容Hive
SparkSQL支持Hive的所有HQL语法
SparkSQL支持Hive原有的所有文件格式(序列化和反序列化)
SparkSQL支持Hive的UDF、UDAF、UDTF -
Spark支持开启JDBC/ODBC服务
于Hiveserver2类似的,Spark也提供了thriftserver服务,用于开启允许远程访问的JDBC/ODBC服务
SparkSQL编程
- 见project
Hive与SparkSQL
-
SparkSQL内嵌Hive
可以直接使用/bin/saprk-sql
启动sparkSQL内嵌的Hive -
如果需要让SparkSQL运行在已有的Hive数据仓库上
- 将hive-site.xml文件拷贝到Spark的conf目录
- 将mysql-connector-java.jar拷贝到Spark的jars目录下
-
SparkSQL也提供了类似Hiveserver2的JDBC服务
sparkSQL的thriftserver服务,封装了hiveserver2,使用相同的协议
jdbc:hive2://host:10000
使用 start-thriftserver.sh可以启动服务