我们熟知的hive支持插入数据的方式有两种,覆盖写入insert overwrite和增量写入insert into。常见数据获取方式有两种(1)文件导入load data (local) inpath…(2)查询导入 insert overwrite/into table select * from table1…
但是,hive支不支持直接插如自定义数据呢,有没有类似sql类数据库的“insert into table1 values (‘sss’,‘sss’,…)”这样的写法呢?
答案是因版本而异,在早一点的版本里,hive 并不支持事务和行级更新,也就是说,你不能单独插入某一行数据或者单独删除某一行数据。而自从hive0.14版本开始,通过配置支持事务可以实现hive的行级更新。
先查看自己的版本吧,hive没有提供hive -version
这样的功能,所以需要我们用whereis hive
找到文件所在路径,然后进入 /hive/lib 查看jar包名称
如图我这边是0.14版本。
如果你也是0.14版本,恭喜你,你可以直接插入自定义数据了。
直接敲语句insert into table tablename1 values ('R3700','aaaa');
即可,注意要用单引号括住string类型的数据,而不能用双引号括住,否则报错。
如果你想插入多行,直接在后面加就行了:
insert into table tablename1 values ('R3700','aaaa'),('xxxxx','xxxx'),('xxxx','xxxx')......;
想了解更多hive的行级操作增删改查,可以进一步搜索 “hive ACID”