更新时间:2023-04-12 GMT+08:00

为什么在启动spark-beeline的命令中指定“--hivevar”选项无效

问题

为什么在启动spark-beeline的命令中指定“--hivevar”选项无效?

在MRS集群启动spark-beeline的命令中如果使用了“--hivevar <VAR_NAME>=<var_value>”选项自定义一个变量,在启动spark-beeline时不会报错,但在SQL语句中用到变量<VAR_NAME>时会报无法解析<VAR_NAME>的错误。

举例说明,场景如下:

  1. 执行以下命令启动spark-beeline:

    spark-beeline --hivevar <VAR_NAME>=<var_value>

  1. 启动成功后,在spark-beeline中执行SQL语句,如“DROP TABLE ${VAR_NAME}”,报无法解析VAR_NAME的错误。

回答

MRS集群因新增多session管理功能,Hive的特性“--hivevar <VAR_NAME>=<var_value>”在Spark中已不再支持,因此在spark-beeline的启动命令中使用“--hivevar”选项无效。