Hive导入数据的五种方法

这篇具有很好参考价值的文章主要介绍了Hive导入数据的五种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        在Hive中建表成功之后,就会在HDFS上创建一个与之对应的文件夹,且文件夹名字就是表名; 文件夹父路径是由参数hive.metastore.warehouse.dir控制,默认值是/user/hive/warehouse; 也可以在建表的时候使用location语句指定任意路径。

        不管路径在哪里,只有把数据文件移动到对应的表文件夹下面,Hive才能映射解析成功; 最原始暴力的方式就是使用hadoop fs –put  |  -mv等方式直接将数据移动到表文件夹下; 但是,Hive官方推荐使用hive命令将数据加载到表中。

本篇文章介绍五种导入数据的方法:Load 加载数据 、Insert插入数据、 As Select加载数据、 Location加载数据、 Import加载数据

一、Load加载数据

Load英文单词的含义为:加载、装载;

所谓加载是指:将数据文件移动到与Hive表对应的位置,移动时是纯复制、移动操作。

纯复制、移动指在数据load加载到表中时,Hive不会对表中的数据内容进行任何转换,任何操作。

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

语法规则

语法规则之filepath

filepath表示待移动数据的路径。可以指向文件(在这种情况下,Hive将文件移动到表中),也可以指向目录(在这种情况下,Hive将把该目录中的所有文件移动到表中)。

filepath文件路径支持下面三种形式,要结合LOCAL关键字一起考虑:

相对路径,例如:project/data1

绝对路径,例如:/home/huser/project/data1

具有schema的完整URI,例如:hdfs://localhost:9000/user/hive/project/data1

语法规则之LOCAL

指定LOCAL, 将在本地文件系统中查找文件路径。

若指定相对路径,将相对于用户的当前工作目录进行解释;

用户也可以为本地文件指定完整的URI-例如:file://user/hive/project/data1。

没有指定LOCAL关键字

如果filepath指向的是一个完整的URI,会直接使用这个URI;

Hive会使用在hadoop配置文件中参数fs.default.name指定的(一般都是HDFS)。

LOCAL本地是哪里?

本地文件系统指的是Hiveserver2服务所在机器的本地Linux文件系统,不是Hive客户端所在的本地文件系统。

语法规则之OVERWRITE

如果使用了OVERWRITE关键字,则目标表(或者分区)中的已经存在的数据会被删除,然后再将filepath指向的文件/目录中的内容添加到表/分区中。

代码示例

Hive导入数据的五种方法,大数据,hive,hadoop,数据仓库

Hive导入数据的五种方法,大数据,hive,hadoop,数据仓库

二、Insert插入数据

insert+select

insert+select表示:将后面查询返回的结果作为内容插入到指定表中,注意OVERWRITE将覆盖已有数据。

需要保证查询结果列的数目和需要插入数据表格的列数目一致

如果查询出来的数据类型和插入表格对应的列数据类型不一致,将会进行转换,但是不能保证转换一定成功,转换失败的数据将会为NULL。

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

Hive导入数据的五种方法,大数据,hive,hadoop,数据仓库

multiple inserts多重插入

翻译为多次插入,多重插入,其核心功能是:

一次扫描,多次插入。 语法目的就是减少扫描的次数,在一次扫描中。完成多次insert操作。

Hive导入数据的五种方法,大数据,hive,hadoop,数据仓库

三、As Select加载数据

创建表的同时,可以通过查询语句As Select把已有表中的数据加载到新创建的表中。这种加载数据的方式在创建表时不需要指定列名。

Hive导入数据的五种方法,大数据,hive,hadoop,数据仓库

四、Location加载数据

创建表时通过Location指定加载路径来加载数据。这里Location指定数据文件存放位置,不管是通过Select方式还是通过Load方式加载的数据都存放在这个目录下。

Hive导入数据的五种方法,大数据,hive,hadoop,数据仓库

五、Import加载数据

通过Import方式可以把数据加载到指定Hive表中。但是这种方法需要先用Export导出后,再将数据导入。

Hive导入数据的五种方法,大数据,hive,hadoop,数据仓库文章来源地址https://www.toymoban.com/news/detail-801404.html

到了这里,关于Hive导入数据的五种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据技术之Hadoop学习(七)——Hive数据仓库

    目录 素材 一、数据仓库简介 1、数据仓库的认识 (1)数据仓库是面向主题的。 (2)数据仓库是随时间变化的。 (3)数据仓库相对稳定 (4)OLTP和OLAP 2、数据仓库的结构 (1)数据源 (2)数据存储及管理 (3)OLAP 服务器 (4)前端工具 3、数据仓库的数据模型 (1)星状模

    2024年02月17日
    浏览(45)
  • Hadoop平台集群之间Hive表和分区的导出和导入迁移(脚本)

    你可以使用Hive的EXPORT和IMPORT命令结合Hadoop的DistCp命令。下面是一个示例脚本: 在脚本中,你需要根据实际情况修改以下参数: source_db.source_table:源Hive表的数据库和表名。 target_hdfs_location:导出数据的HDFS位置,用于暂时存储导出数据。 source_cluster和target_cluster:分别为源H

    2024年02月15日
    浏览(50)
  • 小程序页面之间数据传递的五种方法

    使用 wx.navigateTo() 时,在 url 中拼接,这种方法适用于数据量少的情况 跳转前A页面在 url 中拼接参数,参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 分隔; 跳转到B页面在生命周期函数 onLoad 中接收 如果需要传递对象或数组,需先将对象或数据转为JSON字符

    2024年02月10日
    浏览(47)
  • Hive数据仓库---Hive的安装与配置

    Hive 官网地址:https://hive.apache.org/ 下载地址:http://www.apache.org/dyn/closer.cgi/hive/ 把安装文件apache-hive-3.1.2-bin.tar.gz上传到master节点的/opt/software目 录下,执行以下命令把安装文件解压到/opt/app目录中 进入/opt/app目录,为目录apache-hive-3.1.2-bin建立软件链接 即输入hive就相当于输入a

    2024年02月02日
    浏览(43)
  • hive数据的导入导出

    Linux本地文件以及数据格式: 在hive中创建表: stored as常见的几种格式 1. TextFile:使用TextFile格式存储的表将数据以文本文件的形式进行存储。这是最常用的默认存储格式。 2. SequenceFile:使用SequenceFile格式存储的表将数据以键-值对的形式存储,适用于数据压缩和高效读取。

    2024年02月12日
    浏览(42)
  • hive的数据导入

    1.1 向表中装载数据(Load) 1)语法 (1)load data:表示加载数据。 (2)local:表示从本地加载数据到Hive表;否则从HDFS加载数据到Hive表。 (3)inpath:表示加载数据的路径。 (4)overwrite:表示覆盖表中已有数据,否则表示追加。 (5)intotable:表示加载到哪张表。 (6)stu

    2024年02月13日
    浏览(38)
  • hive表导入外部数据

    生成1亿条数据到文件 data_gen_multi_proc_xxxx.txt 中,cpu8核耗时4min左右 这里不细说具体格式,可以通过hive基础知识进行学习。 Hive基础学习_hive在线学习_程序员的人生K的博客-CSDN博客 Hive超详细介绍_hive中reducer什么意思_「已注销」的博客-CSDN博客 *或者通过其他hive表进行insert ..

    2024年02月16日
    浏览(35)
  • Hive数据仓库简介

    Hive起源于Facebook,Facebook公司有着大量的日志数据,而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架,可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发,但对于其他语言使用者则难度较大。因此Facebook开发团队想设计一种使用SQL语言对日

    2024年02月15日
    浏览(57)
  • hive数据仓库课后答案

    一、 填空题 1.数据仓库的目的是构建面向     分析         的集成化数据环境。 2.Hive是基于     Hadoop         的一个数据仓库工具。 3.数据仓库分为3层,即      源数据层        、     数据应用层        和数据仓库层。 4.数据仓库层可以细分为      明细层

    2023年04月08日
    浏览(47)
  • 数据仓库 & Apache Hive

    目录 一、数据分析 1、数据仓库 1.1、数仓专注分析 1.2、数仓主要特征 1.3、数据仓库主流开发语言--SQL 2、Apache Hive 2.1、为什么使用Hive? 2.2、Hive和Hadoop关系 2.3、Hive架构图、各组件功能 2.4、Hive安装部署 2.4.1、Hive概念介绍 2.4.2、安装前准备     数据仓库 (英语:Data Warehous

    2024年01月22日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包