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指向的文件/目录中的内容添加到表/分区中。

代码示例

二、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;

multiple inserts多重插入

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

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

三、As Select加载数据

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

四、Location加载数据

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

五、Import加载数据

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

x-cmd pkg | duf - df 命令的现代化替代品

目录 简介用户首次快速实验指南技术特点竞品和相关作品进一步探索 简介 Duf (Disk Usage/Free Utility)是一个磁盘分析工具。其直观的输出和多样化的自定义选项,帮助用户更好地管理和优化存储资源。 用户首次快速实验指南 使用 x duf 即可自…

考研经验总结——目录

文章目录 一、写作顺序二、个人情况说明三、读评论四、一些小牢骚五、一些注意事项(持续更新) 一、写作顺序 我将准备从三个阶段开始介绍吧 考研前考研中考研后(也就是现在我的这种情况) 考研前我会分为:数学、专业…

spring Security源码分析-13种过滤器详解

13种核心过滤器 spring security的13个核心过滤器(按执行顺序陈列): WebAsyncManagerIntegrationFilterSecurityContextPersistenceFilterHeaderWriterFilterLogoutFilterUsernamePasswordAuthenticationFilterDefaultLoginPageGeneratingFilterDefaultLogoutPageGeneratingF…

java获取已经发送谷歌邮件的打开状态

1.前言 现在网上的方案都是在邮件里面插入一张图片的地址,当收件人打开之后,就会发送请求到指定路径的服务器上,然后在请求的controller里面处理邮件的状态,这个方案确实是行得通的,本文章只是给大家避个坑&#xff0…

Python mesh网格ply数据转pcd数据

目录 一、代码实现二、测试示例适用:基于open3d 实现mesh(ply)模型到点云pcd的格式转换。 一、代码实现 import open3d as o3d import numpy as npdef ply2stl(plyFile, pcdFile):mesh_ply = o3d.io.read_triangle_mesh(plyFile

HNU-模式识别-作业1-视频监控系统

模式识别-作业1 计科210X 甘晴void 202108010XXX 【评分:98/100】 题目: 查阅相关技术资料,根据自己家庭相应的情况,设计一个视频监控系统。要求: 系统功能说明系统布线图及说明系统软硬件配置说明 饱和式自家用…

C++ mapset

目录 相关知识介绍: 一、set 1、set的介绍 2、set的使用 1. set的模板参数列表 2. set的构造 3. set的迭代器 4. set的容量 5. set修改操作 6. 举例演示 二、multiset 1、multiset的介绍 2、multiset的使用 三、map 1、map的介绍 2、map的使用 1.…

基于Java SSM框架实现摄影器材租赁系统项目【项目源码+论文说明】

基于java的SSM框架实现摄影器材租赁系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识&a…

跨境电商账号频繁?你的IP可能“不干净”了

疫情促进了跨境电商行业的加速发展,许多卖家也抓住了这波流量红利,跨境电商月入数万,数十万甚至数百万的造福神话也不断在上演,但由于国内外电商运营模式不同,多店运营、用户数据收集、刷单等行为都受到了国外平台的严…

vue前端开发自学,异步加载组件,提升用户端的客户体验度

vue前端开发自学,异步加载组件,提升用户端的客户体验度!现实项目开发时,组件的数量非常庞大,如果都是一口气加载完,对手机用户来说,体验度会很差。因此,非常有必要使用异步加载。 那就是,用到了…

【WEB API自动化测试】接口文档与在线测试

这一篇我们主要介绍如何做API帮助文档,给API的调用人员介绍各个 API的功能, 输入参数,输出参数, 以及在线测试 API功能(这个也是方便我们自己开发调试) 我们先来看看我们的API最终帮助文档及在线测试最终达到的效果: 概要图 GET API 添加产品API: 删除…

mysql高级使用教程

mysql体系结构 1.连接层:主要就是做客户端的连接。 2.服务层:主要就是 缓存,分析器,优化器,执行器。 3.引擎层:就是一些存储引擎,包括索引的存储结构。 4.存储层:数据存储的磁盘…

Oracle JDK 8 中的 computeIfAbsent 方法及实践

Java 8 引入了一系列新特性,其中之一是对 Map 接口的增强,其中包括了 computeIfAbsent 方法。这个方法为处理映射提供了一种便捷而强大的方式,允许在键不存在或对应的值为 null 时,动态计算新的值并将其放入映射。在本篇博客中&am…

K8S--Ingress的作用

原文网址:K8S--Ingress的作用-CSDN博客 简介 本文介绍K8S的Ingress的作用。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题,吊打面试官: Java后端真实面试题…

Java SE入门及基础(8)

关系运算符和逻辑运算符 1. 关系运算符 关系运算符包含 > < > < ! boolean result 2 > 3 ; boolean result1 10 10 ; 关系运算符比较的结果是一个布尔值 2. 逻辑运算符 逻辑运算符包含&#xff1a; 逻辑与 &&&#xff…

ChatGPT 淘金潮(全)

原文&#xff1a;The ChatGPT GoldRush 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 一、ChatGPT 简介 什么是 ChatGPT&#xff1f; ChatGPT 是由 OpenAI 基于 GPT-4 架构创建的大型语言模型。它旨在理解和回应自然语言文本输入&#xff0c;使得可以与机器进行对话…

uniapp自带的选择日期的使用

年月日的下拉框 直接看代码 <view class"uni-title uni-common-pl">日期选择器</view><view class"uni-list"><view class"uni-list-cell"><view class"uni-list-cell-left">当前选择</view>&…

docker部署wiki.js

wiki.js介绍 Wiki.js 是一个基于 Node.js 的开源、轻量级、美观和强大的 Wiki 应用程序。 不仅支持全文检索、用户权限管理、页面定制等功能&#xff0c;还具备良好的用户体验。其灵活的扩展性使得我们可以根据项目的实际需求对其进行定制和扩展。 选择 Wiki.js 作为企业知识库…

Django REST框架

Django REST框架 DRF简介第一个DRF应用DRF序列化器DRF序列化嵌套和嵌套关系DRF序列化自定义字段和方法DRF序列化验证数据DRF序列化Meta类DRF视图类&#xff08;View Classes&#xff09;DRF视图类APIViewDRF视图类ListCreateAPIViewDRF视图类RetrieveUpdateDestroyAPIViewDRF视…

CSS如何实现旋转:深入理解与实用技巧

在Web开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;是一种强大的工具&#xff0c;它不仅能够控制网页的布局和样式&#xff0c;还能实现各种视觉效果&#xff0c;包括元素的旋转。本文将深入探讨如何使用CSS实现旋转效果&#xff0c;并提供一些实用的技巧和示例。 …