Hive 中 set 定义出来的变量以及 hive -d 设置的变量

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)

原文地址:https://www.cnblogs.com/yangxusun9/p/12623903.html

时间: 2024-10-12 15:16:25

Hive 中 set 定义出来的变量以及 hive -d 设置的变量的相关文章

hive中导入json格式的数据(hive分区表)

hive中建立外部分区表,外部数据格式是json的如何导入呢? json格式的数据表不必含有分区字段,只需要在hdfs目录结构中体现出分区就可以了 This is all according to this guide: http://blog.cloudera.com/blog/2012/12/how-to-use-a-serde-in-apache-hive/ 1 hive> ADD JAR /home/hadoop/hive-serdes-1.0-SNAPSHOT.jar; 2 Added

Hive中的Order by与关系型数据库中的order by语句的异同点

在Hive中,ORDER BY语句是对查询结果集进行整体的排序,最终将会产生一个reducer进行全局的排序,达到的最终结果是和传统的关系型数据库是一样的. 在数据量非常大的时候,全局排序的单个reducer将会成为性能瓶颈,有可能由于数据量过大而跑不出来结果. Hive中可以设置hive.mapred.mode为strict严格模式,这时候,Hive要求用户必须对order by语句加上limit 条数限制,防止排序数据集过大导致性能瓶颈. 在这里我不提sort by ,distribute

Linux下设置环境变量

setenv(set environment variable) 功能说明:查询或显示环境变量.语 法:setenv [变量名称][变量值]补充说明:setenv为tsch中查询或设置环境变量的指令. 对于bash shell关 于环境变量命令介绍:1.echo 显示某个环境变量值 echo $PATH2.export 设置一个新的环境变量 export HELLO="hello" (可以无引号)3.env 显示所有环境变量4.set 显示本地定义的shell变量5.unset 清除环

Linux设置环境变量方法(export PATH)

1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PATH=/home/.....(动态库的目录) 不过这种设置方法只是在当前的session中有效 你可以修改配置文件实现任何session都有效 2.环境变量的设置 一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在"/opt/a

Linux程序写入oralce数据库中文显示为问号??? 代码实现设置环境变量!

Linux程序写入oralce数据库中文显示为问号??? 1.问题介绍 根本原因是字符集的问题,是数据库的字符集和写入程序的linux系统的字符集不一致导致: 但是用export NLS_LANG="SIMPLIFIED CHINESE"_CHINA.ZHS16GBK添加环境变量,或者在.bash_profile文件中添加这个环境变量,或者在/etc/profile文件中添加这个环境变量,用source 命令使其生效,后写入oralce数据库的中文还是问号?,接着有重启了系统,重启了服

CentOS安装JDK1.7设置环境变量及profile和bashrc文件的区别

1.查看当前系统中是否装有JDK(通常CentOS中默认安装OpenJDK) # java –version 如果存在OpenJDK需要先卸载: # rpm -qa|grep jdk 或 rpm -qa|grep java java-1.6.0-openjdk-1.*** java-1.7.0-openjdk-1.*** # rpm -qa|grep gcj java-1.*** libgcj-*** # yum -y remove java java-1.6.0-openjdk-1.*** #

环境变量的作用,为什么要设置环境变量?

我们平时打开一个应用程序,一般是双击桌面图标或在开始菜单链接,无论是桌面的快捷图标还是菜单链接都包含了应用程序的安装位置信息,打开它们的时候系统会按照这些位置信息找到安装目录然后启动程序,比如如QQ: 知道了一个应用程序的安装目录位置,我们也可以通过命令行工具打开,如笔者QQ的位置为:"C:\Program Files (x86)\Tencent\QQ\QQProtect\Bin\QQProtect.exe",QQ的应用程序名为为QQProtect.exe,那么我们打开命令行工具Win

向Hive中传入变量的方式

Hive向程序中传递变量的方式 暴力替换 字符串替换 正则替换 模板引擎 系统环境变量 shell环境变量:${env:varname} system系统变量:${system:varname} hive 命令参数 hivevar方式:${hivevar:varname} hiveconf方式:${hiveconf:varname} hive接收外部变量方式详解 使用Hive编写程序最常用的方法是将Hive语句写到文件中,然后使用hive -f filename.hql来批量执行查询语句.经常需

Java语言中的定义变量、构造函数

day02 Java语言中的定义类.变量.方法.构造函数 一.概述: 在Java语言中,变量的定义和使用时非常常见和重要的:同时对后续的操作变量奠定基础,在这里定义和使用变量就要使用到我们前一节说到的数据类型了,它们两个就是绑定在一起使用的.我们回顾一下前一节学的数据类型. 学完变量以后就要学会使用变量去定义一些东西,去构造我们需要的一些方法来满足学习的需要.从而引申出了构造这一个词汇.构造就是创造的含义,通过创造一些东西来满足.下面就一一的来看一下. 二.定义"类"(class):