HiveQL数据操作

Hive——HiveQL数据操作

1.向管理表中插入数据

Hive没有行级别的数据插入,数据更新和删除操作,那么往表中装载数据上的唯一途径就是使用一种数据装载操作,或者通过其他方式仅仅将文件写到正确目录下。

0: jdbc:hive2://192.168.142.92:10000/default> show PARTITIONS employees;
+-----------------------------+
|          partition          |
+-----------------------------+
| country=China/state=Xian    |
| country=USA/state=Illinois  |
+-----------------------------+

#向分区表中插入数据
LOAD DATA LOCAL INPATH '/root/Illinois-emps'
OVERWRITE INTO TABLE employees
PARTITION (country="US",state="Illinois")

如果分区目录不存在会优先创建分区目录,然后在将数据拷贝到该目录下,如果目标表不是分区表,应当省略PARTITION子句。

LOCAL关键字指明了是本地文件系统路径;如果数据源存在与本地文件系统中,数据源将会被拷贝到目标位置,如果没有LOCAL关键字,则数据源位于HDFS文件系统中,数据源将会被移动到目标位置。

0: jdbc:hive2://pseudo01:10000/default> desc stus;
+--------------------------+-----------------------+-----------------------+
|         col_name         |       data_type       |        comment        |
+--------------------------+-----------------------+-----------------------+
| id                       | int                   |                       |
| name                     | string                |                       |
| cls                      | string                |                       |
|                          | NULL                  | NULL                  |
| # Partition Information  | NULL                  | NULL                  |
| # col_name               | data_type             | comment               |
|                          | NULL                  | NULL                  |
| cls                      | string                |                       |
+--------------------------+-----------------------+-----------------------+

准备数据:

ClsA.txt
1101,张三
1102,李四
1103,王五
1104,赵六
1105,翠花
----------------------------------------------------------------------------------------------------------
ClsB.txt
1201,胡一刀
1202,胡一筒
1203,楚留香
1204,张翼德
1205,张承恩
1206,王晓二
----------------------------------------------------------------------------------------------------------
ClsC.txt
1301,时迁
1302,武松
1303,李逵
1304,宋江
1305,林冲

向管理表中插入数据

0: jdbc:hive2://pseudo01:10000/default> LOAD DATA LOCAL INPATH '/root/cls/ClsA.txt' INTO TABLE stus PARTITION (cls='ClsA');
No rows affected (4.364 seconds)
0: jdbc:hive2://pseudo01:10000/default> LOAD DATA LOCAL INPATH '/root/cls/ClsB.txt' INTO TABLE stus PARTITION (cls='ClsB');
No rows affected (0.977 seconds)
0: jdbc:hive2://pseudo01:10000/default> LOAD DATA LOCAL INPATH '/root/cls/ClsC.txt' INTO TABLE stus PARTITION (cls='ClsC');
No rows affected (0.916 seconds)
0: jdbc:hive2://pseudo01:10000/default> SELECT id,name,cls FROM stus;
+-------+-------+-------+
|  id   | name  |  cls  |
+-------+-------+-------+
| 1101  | 张三    | ClsA  |
| 1102  | 李四    | ClsA  |
| 1103  | 王五    | ClsA  |
| 1104  | 赵六    | ClsA  |
| 1105  | 翠花    | ClsA  |
| 1201  | 胡一刀   | ClsB  |
| 1202  | 胡一筒   | ClsB  |
| 1203  | 楚留香   | ClsB  |
| 1204  | 张翼德   | ClsB  |
| 1205  | 张承恩   | ClsB  |
| 1206  | 王晓二   | ClsB  |
| 1301  | 时迁    | ClsC  |
| 1302  | 武松    | ClsC  |
| 1303  | 李逵    | ClsC  |
| 1304  | 宋江    | ClsC  |
| 1305  | 林冲    | ClsC  |
+-------+-------+-------+
16 rows selected (0.539 seconds)
0: jdbc:hive2://pseudo01:10000/default> dfs -ls -R /user/hive/warehouse/stus;
+----------------------------------------------------+
|                     DFS Output                     |
+----------------------------------------------------+
| drwxr-xr-x   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值