AmosCloud

Library

Have a Question?

If you have any question you can ask below or enter what you are looking for!

SparkSQL

SparkSQL

是什么

SparkSQL是spark的一个模块,专门用于处理结构化数据

特点

  1. 兼容SparkCore
    SparkSQL允许在同一个Spark程序中,混合使用算子操作和SQL操作,并且支持使用Scala、Java、SQL、R进行编程

  2. 提供通过一的数据访问方式
    可以使用SparkSQL直接对各类数据源进行读写操作
    文本: TEXT CSV JSON
    列式存储: ORC Parquet
    JDBC: MySQL Oracle

  3. SparkSQL完全兼容Hive
    SparkSQL支持Hive的所有HQL语法
    SparkSQL支持Hive原有的所有文件格式(序列化和反序列化)
    SparkSQL支持Hive的UDF、UDAF、UDTF

  4. Spark支持开启JDBC/ODBC服务
    于Hiveserver2类似的,Spark也提供了thriftserver服务,用于开启允许远程访问的JDBC/ODBC服务

SparkSQL编程

  • 见project

Hive与SparkSQL

  • SparkSQL内嵌Hive
    可以直接使用/bin/saprk-sql启动sparkSQL内嵌的Hive

  • 如果需要让SparkSQL运行在已有的Hive数据仓库上

    1. 将hive-site.xml文件拷贝到Spark的conf目录
    2. 将mysql-connector-java.jar拷贝到Spark的jars目录下
  • SparkSQL也提供了类似Hiveserver2的JDBC服务
    sparkSQL的thriftserver服务,封装了hiveserver2,使用相同的协议
    jdbc:hive2://host:10000
    使用 start-thriftserver.sh可以启动服务