set自定义变量
今天踩了一个坑:
在hive的命令行操作中,用set 命令可以自定义出一个变量,但是在函数中使用时确调不出来,如图
在查找原因时,这位大佬的博客https://www.cnblogs.com/superpang/p/4639145.html启发了我,会不会是命名空间的原因让函数调用时无法找到变量呢
这次用带命名空间的方式重新定义了变量,然后再次调用函数,见证奇迹的时刻到了!
这说明
“在hive中使用set操作自定义变量时,hivevar:命名空间不是可选的,应该是在使用set定义变量时时刻加hivevar:命名空间,以免出现难以找出的错误。”
hive -d 自定义变量
而当用hive -d 自定义出来的变量时,不需要加命名空间,也可以在函数中正常调用
hive -d json=$(cat jsontest)