大数据从入门到精通(超详细版)之Hive的DML操作,通俗易懂,包看包会!!!

前言

嗨,各位小伙伴,恭喜大家学习到这里,不知道关于大数据前面的知识遗忘程度怎么样了,又或者是对大数据后面的知识是否感兴趣,本文是《大数据从入门到精通(超详细版)》的一部分,小伙伴们如果对此感谢兴趣的话,推荐大家按照大数据学习路径开始学习哦。

以下就是完整的学习路径哦。

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

大数据从入门到精通文章体系!!!!!!!!!!!!!!

↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

推荐大家认真学习哦!!!

上一篇文章我们已经学习了Hive的DDL操作,了解到了Hive的建表语句与实际操作,接下来我们学习得深入一点,我们来学习Hive的DML操作,学习如何操作Hive当中的数据。

在这里插入图片描述

Hive的DML数据操作

明确学习目标

我们学习Hive的DML语句之前,我们需要先明确Hive的DML语句的使用场景:

  • Hive的数据多是用于大数据场景下进行分析计算的,而不是用于存储数据的,请大家首先明确这一点。
  • 真实开发环境当中的Hive中的数据一般是海量的,很少进行更新和删除的操作,因为不实用且耗费性能。

Load操作

说明

将文件数据导入到Hive的表当中。

在这里插入图片描述

语法:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)];

关键字说明:

  1. local:表示从本地加载数据到Hive表;否则从HDFS加载数据到Hive表。

    注意,这里的本地,存在两种不同的情况:

    一种是使用shell界面操作的情况,这里的本地指客户端所在的本地路径

    另一种是使用JDBC操作的情况,这里的本地指hiveserver2所在节点的本地路径

  2. overwrite:表示覆盖表中已有数据,否则表示追加。

  3. partition:表示上传到指定分区,若目标是分区表,需指定分区。分区表的概念后续后进行详细的介绍

实际操作

首先创建表:

CREATE TABLE myhive.test_load(
  dt string comment '时间(时分秒)', 
  user_id string comment '用户ID', 
  word string comment '搜索词',
  url string comment '用户访问网址'
) comment '搜索引擎日志表' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

接下来准备文件:

  • 本地:

    在这里插入图片描述

  • HDFS:

    ##从本地上传文件带HDFS
    hdfs dfs -put /export/test/search_log.txt /tmp/search_log.txt
    ##查看文件内容
    hdfs dfs -cat /tmp/search_log.txt
    

    在这里插入图片描述

可以看到数据都已经加载准备完毕了,接下来就使用我们的Load命令加载文件数据吧

  • 首先从本地加载, 此处加了local关键字,表示我们的数据是从本地开始加载的

    load data local inpath '/export/test/search_log.txt' into table myhive.test_load;
    

在这里插入图片描述

数据从本地加载成功

  • 接下来再从HDFS加载,此时就不使用local关键字了

    #先清空表数据
    truncate table test_load;
    
    #此处使用了overwrite关键字,覆盖数据而不是追加数据
    load data inpath '/tmp/search_log.txt' overwrite into table myhive.test_load;
    

    在这里插入图片描述

这时候需要注意:

基于HDFS进行load加载数据,源数据文件会消失(本质是被移动到表所在的目录中)

在这里插入图片描述

可以看到HDFS当中的文件已经消失了,因为被移动到Hive的表当中去了

INSERT SELECT 操作

除了load加载外部数据外,我们也可以通过SQL语句,从其它表中加载数据。

语法:

INSERT [OVERWRITE | INTO] TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement;

将SELECT查询语句的结果插入到其它表中,被SELECT查询的表可以是内部表或外部表。

注意,这种INSERT SELECT操作不管什么情况下,都会走mapReduce程序,导致数据加载很慢,在大数据量的情况下,效率与Load操作相似,但是小数据量的情况下,效率远低于Load

Hive导出数据

将hive表中的数据导出到其他任意目录,例如linux本地磁盘,例如hdfs,例如mysql等等

语法:

insert overwrite [local] directory ‘path’ select_statement1 FROM from_statement;
  • 将查询的结果导出到本地 - 使用默认列分隔符

    insert overwrite local directory '/export/test/' select * from test_load ;
    

    在这里插入图片描述

    可以看到文件已经导出了,但是呢,文件的分隔符是默认的分隔符,导致不方便查看,所以要改变分隔符格式

  • 将查询的结果导出到本地 - 指定列分隔符

    insert overwrite local directory '/export/test/' row format delimited fields terminated by '\t' select * from test_load;
    
    

    在这里插入图片描述

    现在分隔符这种方式已经很方便查看了。

  • 将查询的结果导出到HDFS上(不带local关键字)

    insert overwrite directory '/export/test/' row format delimited fields terminated by '\t' select * from test_load;
    

hive表数据导出 - hive shell

通过hive shell的方式直接导出到linux本地

## 将sql查询语句的结果,通过重定向符,写入到/export/test/export4.txt文件当中
bin/hive -e "select * from myhive.test_load;" > /export/test/export4.txt

bin/hive -f export.sql > /home/hadoop/export4/export4.txt

结尾

恭喜小伙伴完成本篇文章的学习,相信文章的内容您已经掌握得十分清楚了,如果您对大数据的知识十分好奇,请接下来跟着学习路径完成大数据的学习哦,相信你会做到的~~~

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

大数据从入门到精通文章体系!!!!!!!!!!!!!!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
大数据Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。想要从入门到精通大数据Hadoop,需要以下几个步骤。 首先,了解Hadoop的基本概念和架构。HadoopHadoop分布式文件系统(HDFS)和Hadoop分布式计算框架(MapReduce)组成。HDFS用于存储大规模数据集,而MapReduce用于分布式计算。了解这些基本概念对于理解Hadoop的运行方式至关重要。 其次,学习Hadoop的安装和配置。Hadoop的安装可以通过官方网站提供的二进制文件进行,同时需要配置相关环境变量和属性文件。熟悉Hadoop的配置能够更好地适应不同的需求和环境。 第三,学习Hadoop的编程模型和API。Hadoop使用Java编程语言来实现分布式计算任务。了解Hadoop编程模型和API可以帮助我们编写MapReduce程序,实现数据的分布式处理和并行计算。 第四,了解Hadoop生态系统中的其他组件。Hadoop生态系统包括HBase、Hive、Pig、Spark等多个组件,它们可以与Hadoop一起使用,提供更强大的数据处理和分析能力。了解这些组件的基本概念和用法,能够更好地解决实际的数据处理问题。 最后,通过实践项目来提升技能。只有通过实践,才能真正掌握Hadoop的使用和应用。可以通过解决实际的数据问题,运行和调优MapReduce程序,深入理解Hadoop的工作原理和性能优化。 总结起来,要想从入门到精通大数据Hadoop,需要了解基本概念和架构,学习安装配置,掌握编程模型和API,了解Hadoop生态系统中的其他组件,并通过实践项目来提升技能。这些步骤将帮助我们更好地理解和运用Hadoop,实现大数据的存储和处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木 木 水.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值