文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)(巴黎区域)/ 使用Spark2x/ Spark2x常见问题/ SQL和DataFrame/ 为什么在启动spark-beeline的命令中指定“--hivevar”选项无效
更新时间:2022-12-14 GMT+08:00

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

问题

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

从V100R002C60版本开始,在启动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的错误。

回答

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