访问shell中的hiveconf变量

2guxujil  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(357)

我想知道是否可以通过配置单元访问shell中的hiveconf变量。
例如: set hivevar:DIR='scripts'; 如果我直接键入: !sh ls -l scripts :
该目录中的输出打印。
然而, !sh ls -l ${DIR} 结果 ls: cannot access ${DIR}: No such file or directory 我怀疑这是因为变量是一个配置单元变量,当您运行!sh命令它无法识别 ${} 语法。是否可以在hql脚本中定义一个变量,然后在 ! 命令?

fv2wmkja

fv2wmkja1#

很好用。从变量中删除单引号。也不要写 sh 之后 ! :
让我们在其中创建目录和文件:

$ mkdir scripts
$ touch ./scripts/test.txt
$ ls ./scripts
test.txt

现在运行hive,定义变量并运行 ls :

hive> set hivevar:DIR=scripts;
hive> ! ls ${hivevar:DIR};
test.txt

让我们删除目录(使用 ! rm -r )在配置单元中,并尝试再次列出它:

hive> ! rm -r ${hivevar:DIR};
hive> ! ls ${hivevar:DIR};
ls: cannot access scripts: No such file or directory
Command failed with exit code = 2

如你所见,一切正常。
阅读更多有关语法的信息。

相关问题