大数据基础平台——Hive数据操纵操作

1.实验目的

  1. 了解与熟悉Hive的数据导入操作;
  2. 了解与熟悉Hive的数据插入操作;
  3. 了解与熟悉Hive的数据导出操作。

2.实验内容及结果截屏

(1)数据导入

①从本地文件系统导入数据表

使用CREATE TABLE语句创建数据表flights用于存储航班数据集:

使用LOAD DATA LOCAL INPATH '<数据文件路径>' INTO TABLE <表名>语句将本地文件系统中的数据文件/opt/data/flights/flights14.csv导入表flights:

②从HDFS导入数据表

重新创建数据表flights:

新启动一个终端,使用hdfs dfs -put命令将数据文件flights14上传到HDFS:

 

使用LOAD DATA INPATH '<数据文件路径>' INTO TABLE <表名>语句将HDFS中的数据文件/user/root/flights14.csv导入表flights:

 

该语句仅仅是将数据文件在HDFS上从原路径移动到Hive表对应的路径下:

 使用dfs -ls命令原数据文件统计信息:

③导入并覆盖

由于表flights中已经有数据,如果不使用OVERWRITE关键词则会在原有数据基础上添加新导入数据:

使用dfs -ls命令显示表flights对应文件夹的统计信息:

使用OVERWRITE关键词导入并覆盖,将仅保留新导入数据:

使用dfs -ls命令显示表flights对应文件夹的统计信息:

④导入分区表

使用CREATE TABLE ... PARTITIONED BY ...语句创建分区表flights,其中分区列为load_date:

数据导入时,使用PARTITION关键词指定导入的分区:

(2)数据插入

①基本插入

使用CREATE TABLE语句创建数据表flights用于存储航班数据集:

使用INSERT INTO TABLE <表名> <查询语句>语句将查询结果插入表flights,查询结果为简单选取flights.flights14表中的所有数据:

②插入并覆盖

由于表flights中已经有数据,如果不使用OVERWRITE关键词则会将新导入数据与原有数据按行合并:

 使用dfs -ls命令显示文件夹统计信息:

使用INSERT OVERWRITE语句插入并覆盖,将仅保留新插入数据:

 使用dfs -ls命令显示文件夹统计信息:

③插入分区表

使用CREATE TABLE ... PARTITIONED BY ...语句创建分区表flights,其中分区列为year和month:

 数据插入时,使用PARTITION关键词指定导入的分区:

 使用SHOW PARTITIONS语句显示分区表flights的分区:

④动态插入分区表

在动态插入分区表前,需要先设置动态分区模式、是否允许动态分区:

 使用INSERT ... PARTITION ...语句插入分区表:

 使用SHOW PARTITIONS语句显示分区表flights的分区:

 (3)数据导出

①导出到本地文件系统

使用INSERT OVERWRITE LOCAL DIRECTORY '<导出路径>'语句将表flights.flights14导出到本地文件系统中的数据文件路径/root/tmp/flights:

 使用head命令查看导出数据文件的前几行:

 

 数据导出时使用ROW FORMAT将示分隔符设为逗号:

 使用head命令查看导出数据文件的前几行:

 

②导出到HDFS

使用INSERT OVERWRITE DIRECTORY '<导出路径>'语句将表flights.flights14导出到HDFS上的的数据文件/user/root/flights:

 使用hdfs dfs -cat命令查看导出数据文件的前几行:

 3.实验分析及小结

       在此次实验过程中,我了解了Hive的数据导入操作、数据插入操作以及数据导出操作。由于步步紧跟指导,我的实验过程十分顺利,没有遇上许多问题,仅仅发生了一些粗心问题。在之后的实验中,我会更加细心地对待,尽可能减少此类错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱桃小叮当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值