关于纠正《Hive权威指南》中的结论~“hive在使用set自定义变量时,hivevar命名空间是可选的”~的论证
背景:
根据《Hive权威指南》上讲,在hive-0.8.0以后可以使用--define key=value命令定义用户自定义的变量以便在Hive脚本中引用。当用户使用这个功能时,Hive会将这个键值对放在hivevar命名空间下。并且,hivevar这个命名空间在使用过程中是可选的,也就是说可写可不写,自定义的变量都会放在hivevar这个命名空间下。
为了支持上面的观点,书上做了下面的操作。我为了亲自体会,使用的是hive-0.13.0。
1.使用hive --define foo=bar语句,在hive中定义一个变量名为foo,值为bar;
效果图如下:

2.使用set foo;查看变量foo的值,从效果图可以看出,foo的值确实为bar。
效果图如下:

3.再使用set hivevar:foo;查看hivevar命名空间下的变量foo的值,从效果图可以看出,hivevar命名空间下的变量foo的值确实为bar。测试到这里,已经可以给人感觉加不加hivevar:这个命名空间名结果都是一样的。
效果图如下:

4.书中为了更确定的证明结论的正确性,又使用set hivavar:foo=bar2;改变foo的值,并使用set fool;和set hivevar:foo;查看不带命名空间和带命名空间的foo的值是否都已经改变。根据效果图可以看出,两个foo确实已经改变,证毕。于是书中给了开篇所说的结论。
效果图如下:

5.注意:下面我们来分析一下,既然hivevar:命名空间是可选的,那么我们使用set foo=bar3;再次改变foo的值,带命名空间和不带命名空间的foo的值都应该变成bar3,下面我们做此测试,根据效果图可以看到,结果并不如我们推测的那样,而是不带命名空间的foo值变成了bar3,带命名空间的foo的值竟然没有变化!
效果图如下:

结论:
“在hive中使用set操作自定义变量时,hivevar:命名空间不是可选的,应该是在使用set定义变量时时刻加hivevar:命名空间,以免出现难以找出的错误。”
附加:
“因为--define key=value实际上与--hivevar key=value是等价的,所以无论你习惯使用上面哪个操作自定义变量,都要加命名空间,不然都存在以上说的问题”
关于纠正《Hive权威指南》中的结论~“hive在使用set自定义变量时,hivevar命名空间是可选的”~的论证的更多相关文章
- hive权威指南<一>
一.ETL介绍: 数据抽取:把不同的数据源数据抓取过来,存到某个地方 数据清洗:过滤那些不符合要求的数据或者修正数据之后再进行抽取 不完整的数据:比如数据里一些应该有的信息缺失,需要补全后再写入数据仓 ...
- hive编程指南——读书笔记(无知拾遗)
set hive.metastore.warehouse.dir=/user/myname/hive/warehouse; 用户设定自己的数据仓库目录.不影响其他用户.也在$HOME/.hiverc中 ...
- 《hadoop权威指南》关于hive的第一个小例子的演示
本文是<hadoop权威指南>关于hive的小例子,通过这个例子可以很好地看出来hive是个什么东西. 前提是已经配置好hive的远程连接版本的环境,我是用了MYSQL数据库保存元数据. ...
- 基于python的《Hadoop权威指南》一书中气象数据下载和map reduce化数据处理及其可视化
文档内容: 1:下载<hadoop权威指南>中的气象数据 2:对下载的气象数据归档整理并读取数据 3:对气象数据进行map reduce进行处理 关键词:<Hadoop权威指南> ...
- 使用最新AndroidStudio编写Android编程权威指南(第3版)中的代码会遇到的一些问题
Android编程权威指南(第3版)这本书是基于Android7.0的,到如今已经过于古老,最新的Android版本已经到10,而这本书的第四版目前还没有正式发售,在最近阅读这本书时,我发现这本书的部 ...
- [转]NopCommerce中的多商店支持:权威指南
[转]NopCommerce中的多商店支持:权威指南 多商店支持是最强大的nopCommerce功能之一.但究竟什么是多店支持?它是谁的?如何在nopCommerce中设置多个商店?在今天的帖子中,我 ...
- 《果壳中的C# C# 5.0 权威指南》 - 学习笔记
<果壳中的C# C# 5.0 权威指南> ========== ========== ==========[作者] (美) Joseph Albahari (美) Ben Albahari ...
- javascript权威指南(中文版)中的一些错误(一)
本人目前正在学习js,使用的是javascript权威指南(中文版),学习的时候发现一些细节上的错误,若是我的错误,欢迎指正 1.P11------多了“我们称为 原文为 return Math.sq ...
- WindowsPE权威指南-PE文件头中的重定位表
PE加载的过程 任何一个EXE程序会被分配4GB的内存空间,用户层处理低2G的内存,驱动处理高2G的内存. 1.双击EXE程序,操作系统开辟一个4GB的空间. 2.从ImageBase决定了加载后的基 ...
随机推荐
- layout属性
RelativeLayout 第一类:属性值为true可false android:layout_centerHrizontal 水平居中 android:layout_centerVe ...
- 基于Laravel框架的一个简单易学的微信商城(新手必学)
俗话说,麻雀虽小可五脏俱全呀! 今天分享的这个基于Laravel的小项目大概功能有这些: 1.实现会员登录.注册功能.数据双向验证功能.2.实现手机短信验证.邮件激活账号.邮件通知.3.ajax提交数 ...
- 使用HTML辅助方法载入分部视图
在webform中我们用过user control可以减少重复代码也利于将页面模组化, 在mvc中 叫分部视图 Partial View. 也就是一个片段的view.可以利用Partial vie ...
- Git 分支管理 创建与合并分支
分支在实际中有什么用呢? 假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了. 如果等代码全部写完再一次提交, ...
- Androidstudio坑
1.intel haxm sdkmanager显示不可选中,而且boost设置好了intervt 解决:重新关闭,打开系统,然后开启.... 2.解决不了一直报错,(自己的代码,明明已经没有问题) 有 ...
- sql 查询重复数据
select user_name,count(*) as count from comm_user group by user_name having count>1;
- STP-13-MST和其它STP版本的互操作性(没写完)
为了理解MST和其他STP版本的互操作性,首先要来看看MST与没有每VLAN概念的纯IEEE802.1D STP或802.1w RSTP非MST交换机(本书称其为非MST交换机)之间互操作的方式.这些 ...
- Ubuntu16.04.2 LTS 64bit系统装机记录
系统环境:Win10 + Ubuntu16.04.2 LTS 64bit(双系统)安装教程:Win10和Ubuntu16.04双系统安装详解(简书)以下为系统安装后所要进行的操作. 一.安装显卡驱动 ...
- K.河北美食
链接:https://ac.nowcoder.com/acm/contest/903/K 题意: icebound最喜欢吃河北菜,于是他想要大厨做一桌河北菜宴请宾客.icebound购买了一些食材,并 ...
- Codeforces 1168A(二分check)
关键是check.要注意到其实有了mid以后每个位置都是独立的,它能从哪走到哪是固定了的,只要从左到右尽量贪心压着最小值即可. #include <cstdio> const int ma ...