与Apache Hive的兼容性

Spark SQL设计得和Hive元存储(Metastore)、序列化反序列化(SerDes)、用户自定义函数(UDFs)相兼容。当前的Spark SQL以Hive 0.12.0和0.13.1为基础。

部署存在的Hive仓库

Spark SQL Thrift JDBC服务器按照“开箱即用(out of the box)”的方式设计得和存在的Hive相兼容。你不必修改存在的Hive仓库或者改变数据的位置或者分割表。

支持的Hive特征

Spark SQL支持绝大部分的Hive特征。

  • Hive查询语句
    • SELECT
    • GROUP BY
    • ORDER BY
    • CLUSTER BY
    • SORT BY
  • 所有的Hive操作
    • 关系运算符(=, ⇔, ==, <>, <, >, >=, <=等)
    • 算术运算符(+, -, *, /, %等)
    • 逻辑运算符(AND, &&, OR, ||)
    • 复杂的类型构造函数
    • 数学函数(sign, ln, cos等)
    • 字符串函数(instr, length, printf等)
  • 用户自定义函数
  • 用户自定义聚合函数(UDAF)
  • 用户自定义序列化格式
  • Joins
    • JOIN
    • {LEFT|RIGHT|FULL} OUTER JOIN
    • LEFT SEMI JOIN
    • CROSS JOIN
  • Unions
  • 子查询
    • SELECT col FROM ( SELECT a + b AS col from t1) t2
  • 采样
  • Explain
  • Partitioned表
  • 视图
  • 所有的Hive DDL函数
    • CREATE TABLE
    • CREATE TABLE AS SELECT
    • ALTER TABLE
  • 大部分的Hive数据类型
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEAN
    • FLOAT
    • DOUBLE
    • STRING
    • BINARY
    • TIMESTAMP
    • DATE
    • ARRAY<>
    • MAP<>
    • STRUCT<>