Hive应用:设置字段默认值
2018-08-11 10:36
2516 查看
Hive应用:设置字段默认值
介绍
有以下场景需要我们给字段添加默认值。当我们清理了一些数据之后,数据的某些字段在数据中是没有的但是需要保留这个字段,那么我们将数据插入中转表中时,就需要给这个字段赋予默认值,来让语句正确执行。
本人知道的添加默认值的方法有以下两种:
直接量
在写插入语句的时候,可以直接在语句中将默认值写入。例如:
insert into table User_Attribute select (row_number() over())+1000 as id,customid,0 as age from tbl_custom;
如上面的语句,清理的数据中没有年龄字段,而中转表中有这个字段,那么在插入的时候就直接将默认值0赋给这个字段。其他类型的直接量也一样。
示例:
hive> select * from person; OK 1.0 张三 20.0 男 未知 2.0 李四 25.0 男 河北 3.0 张飞 30.0 男 河北 4.0 关羽 35.0 男 山东 5.0 小乔 38.0 女 浙江 6.0 刘备 40.0 男 成都 7.0 小李 29.0 男 江南
以上是本人hive中一个表中的数据,本人想把这个数据导入到另外一张表中,添加一个test int类型的字段,那么有如下操作:
hive> create table ren(id string,name string,age string,gender string,address string,test int) row format delimited fields terminated by '|'; OK Time taken: 0.415 seconds hive> insert into table ren select * , 0 as test from person;
执行完插入语句,我们看一下数据:
hive> select * from ren; OK 1.0 张三 20.0 男 未知 0 2.0 李四 25.0 男 河北 0 3.0 张飞 30.0 男 河北 0 4.0 关羽 35.0 男 山东 0 5.0 小乔 38.0 女 浙江 0 6.0 刘备 40.0 男 成都 0 7.0 小李 29.0 男 江南 0 Time taken: 0.61 seconds, Fetched: 7 row(s) hive>
插入成功,并且成功的增加了字段而且赋予了默认值。
内置函数
除了直接量的方法,我们还可以使用Hive的内置函数来做到这一点。示例:
还是上面的例子,这次使用内置函数来完成,操作如下:
hive> insert into table ren select * , abs(0) as test from person;
这次使用的是求绝对值的函数,将这个值赋予test字段。
看一下数据:
hive> select * from ren; OK 1.0 张三 20.0 男 未知 0 2.0 李四 25.0 男 河北 0 3.0 张飞 30.0 男 河北 0 4.0 关羽 35.0 男 山东 0 5.0 小乔 38.0 女 浙江 0 6.0 刘备 40.0 男 成都 0 7.0 小李 29.0 男 江南 0 1.0 张三 20.0 男 未知 0 2.0 李四 25.0 男 河北 0 3.0 张飞 30.0 男 河北 0 4.0 关羽 35.0 男 山东 0 5.0 小乔 38.0 女 浙江 0 6.0 刘备 40.0 男 成都 0 7.0 小李 29.0 男 江南 0 Time taken: 0.296 seconds, Fetched: 14 row(s) hive>
数据也插入成功并赋予了默认值。
以上就是两种赋予字段默认值的方法。
上一篇:Hive应用:设置字段自增
下一篇:
相关文章推荐
- issues:close-Form字段默认值设置,roo创建应用的默认语言设置
- Hive应用:设置字段自增
- Mysql中如何设置日期字段默认值为当前日期
- ORACLE设置字段默认值
- 为多表批量添加字段,设置默认值,赋值SQL(自编)
- SQL SERVER中将某字段默认值设置为当前登录名
- Mysql中如何设置日期字段默认值为当前日期
- 使用SSH在做插入和修改的时候即使数据库中给字段设置了默认值还是没有用,在表对应的配置文件中也不知道该如何配置。。请教下。。
- JPA为entity字段设置默认值
- mysql给已有字段设置默认值
- PowerDesigner中如何给字符串字段设置默认值 .
- BeanUtils 转换器将Long ,Integer等字段的默认值设置为null
- NHibernate 设置字段的默认值的办法
- Navicat给字段设置为默认值,字符串类型需要加单引号
- oracle ,mysql,sqlserver 字段设置默认值是否为空测试
- SQL Server 字段设置默认值
- oracle向已有表增加字段、字段设置默认值、修改表字varchar类型的长度
- oracle数据库的一个表中,怎么设置字段的默认值
- 在DB2中设置查询字段的默认值
- mysql 表增加一个字段并设置默认值