[Hive DML学习]

本文介绍了Hive中的DML操作,重点讲解了LOAD DATA命令的使用,包括从本地和HDFS加载数据,以及OVERWRITE和INTO TABLE的区别。此外,还探讨了INSERT语法,但指出在生产环境中较少使用,因为可能会产生大量小文件。最后,文章列举了一些常用的Hive SQL语法和函数,如聚合函数、CASE WHEN THEN、时间相关函数等,并展示了如何使用explode函数进行行转列操作来实现简单的Word Count分析。
摘要由CSDN通过智能技术生成

1.课前经验:
  在关系型数据库中,使用insert,update的情况是很多的,但是在大数据中,比如hive中,这种使用情况是很少的,基本上都用用load,把一个文件和一批文件load进hive表里,其实就是把这些文件load到hdfs中去。
2.LOAD:
  LOAD DATA [LOCAL] INPATH ‘filepath’ [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 …)]
  LOCAL:表示的是本地,就是Linux上。如果不带LOCAL,相当于这个数据在hdfs上。
  ‘filepath’ : 表示指向你数据所在的一个路径。
  OVERWRITE: 表示将之前的数据覆盖。
  INTO TABLE:表示追加。
  PARTITION :表示分区。
首先我们先创建一张表:
  create table dept(
deptno int,
dname string,
location string
) row format delimited fields terminated by ‘\t’;
然后从本地LOAD数据到dept中:
LOAD DATA LOCAL INPATH ‘/home/hadoop/data/dept.txt’ OVERWRITE INTO TABLE dept;(覆盖)
LOAD DATA LOCAL INPATH ‘/home/hadoop/data/dept.txt’ INTO TABLE dept;(追加)
在这里插入图片描述
从上图就可以看出OVERWRITE和 INTO TABLE的区别。
下面我们试一下从hdfs上加载数据到表里:
  首先现在hdfs上创建一个目录,将文件放到目录下:
 在这里插入图片描述
然后加载数据到dept表里:
LOAD DATA INPATH ‘/hive/dept/dept.txt’ OVERWRITE INTO TABLE dept;(没有LOCAL,表示从hdfs加载数据)
在这里插入图片描述这个时候到hdfs上看,发现文件没有了,
在这里插入图片描述(它被移到dept这张表默认的hdfs的路径下了,这里是:hdfs://10-9-140-90:9000/user/hive/warehouse/d6_hive.db/dept&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值