Spark 扩展

Hive 方言支持

qianmoQqianmoQ· 更新于 2026-09-29· 阅读 2 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Hive Dialect 插件旨在为 Spark 的 JDBC 数据源提供 Hive Dialect 支持。它会自动注册到 Spark,并应用于 URL 前缀为 jdbc:hive2:// 或 jdbc:kyuubi:// 的 JDBC 数据源。

Hive Dialect 有助于解决访问 Kyuubi 时的失败问题。在 Spark 中使用 Hive JDBC Driver 或 Kyuubi Hive JDBC Driver 将 Kyuubi 作为 JDBC 数据源查询数据时,会出现失败和非预期的结果,这是因为 Spark JDBC 默认不支持 Hive Dialect,它以 ANSI 风格的 “table.column” 方式对列及其他标识符进行引用,而不是使用 HiveSQL 风格的 `table`.`column`。

特性

  • 以 Hive SQL 风格引用标识符

    例如:将 table.column 引用为 `table`.`column`

使用方法

  1. 获取 Kyuubi Hive Dialect 扩展 jar 包

    1. 通过执行 build/mvn clean package -pl :kyuubi-extension-spark-jdbc-dialect_2.12 -DskipTests 编译扩展
    2. 在 extensions/spark/kyuubi-extension-spark-jdbc-dialect/target 下获取扩展 jar 包
    3. 如果需要,可以在编译命令中指定相应的 Maven profile 来编译扩展 jar 包,例如通过 -Pspark-3.5 编译可获取适用于 Spark 3.5 的扩展 jar 包
  2. 将 Kyuubi Hive Dialect 扩展 jar 包 kyuubi-extension-spark-jdbc-dialect_-*.jar 放入 $SPARK_HOME/jars

  3. 启用 KyuubiSparkJdbcDialectExtension,设置 spark.sql.extensions=org.apache.spark.sql.dialect.KyuubiSparkJdbcDialectExtension,即:

    • 在 $SPARK_HOME/conf/spark-defaults.conf 中添加一项配置
    • 或在 SparkSession builder 中添加配置设置

评论

登录后参与评论

正在加载评论…