Hive(3) DML语句
DML 数据操作语句
导入数据
直接从文件向表中导入数据(load data)
load data [local] inpath <文件路径> [overwrite]
into table <表名>
[partition (<分区名> = <值>, ...)]
说明
- local : 如果加上local, 就是本地文件上传, 如果不加, 就是HDFS文件上传
- overwrite : 如果加上该属性, 就把原先的表中数据全部清除, 然后再加入新数据, 如果不加该属性, 就是在原来数据的基础上追加数据
- partition (<分区名> = <值>, …) : 表示上传到哪个分区
注意
本地上传的话, 文件依旧存在(复制), 但是如果是HDFS上传, 原本的文件就不存在了(移动)
insert 语句
insert into <表名>
values(<值列表1>) (<值列表2>) ... ;
注意
1.
insert
不支持插入部分字段, 即不像MySQL中指定部分字段然后插入部分字段的值2. 因为Hive现将逻辑翻译为MapReduce, 然后再执行, 所以一般不这么写, 因为效率太慢, 一般使用
insert
语句, 都是从一个表中向另一个表中导入数据, 见下面
通过查询向表中插入数据
insert [overwrite] table <表名>
partition(<分区字段> =