当前位置: 首页 > news >正文

Hive3:数据的加载与导出

一、加载数据

在创建表之后,表中没有数据,我们不可能insert存入数据。
而是,通过数据加载,将HDFS中的数据关联到Hive表中。

建表

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';

SQL语法

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename;

OVERWRITE:覆盖原表数据。

方式1、加载本地数据

这种方式,是先将本地数据上传HDFS文件系统中,然后,关联到Hive表中。
这里的本地,是指安装Hive的服务器。

SQL

LOAD DATA LOCAL INPATH '/home/atguigu/search_log.txt' INTO TABLE myhive.test_load;

在这里插入图片描述

方式2、加载HDFS数据

这种方式,是将HDFS文件系统重其他目录的数据,MoveHive表对应的目录中,从而,关联到Hive表中。

SQL
此时inpath对应的是HDFS中文件的路径。

LOAD DATA INPATH '/tmp/search_log.txt' INTO TABLE myhive.test_load;

在这里插入图片描述
在这里插入图片描述
加载后,源文件就不在了。
在这里插入图片描述

方式3、INSERT SELECT加载数据

这个方式,和MySQL语法差不多

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

SELECT查询语句的结果插入到其它表中,被SELECT查询的表可以是内部表或外部表。
注意:列字段要对齐,否则数据错乱。

示例:

INSERT INTO TABLE tbl1 SELECT * FROM tbl2;
INSERT OVERWRITE TABLE tbl1 SELECT * FROM tbl2;

二、导出数据

基本语法:

insert overwrite [local] directory 'path' select_statement1 FROM from_statement;

方式1、INSERT OVERWRITE

将查询的结果导出到本地 - 使用默认列分隔符

insert overwrite local directory '/home/hadoop/export1' 
select * from test_load ;

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

insert overwrite local directory '/home/hadoop/export2' 
row format delimited fields terminated by '\t' 
select * from test_load;

将查询的结果导出到HDFS文件系统中(不带local关键字)

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

方式2、HIVE SHELL

基本语法:(hive -f/-e 执行语句或者脚本 > file

bin/hive -e "select * from myhive.test_load;" > /home/hadoop/export3/export4.txt
bin/hive -f export.sql > /home/hadoop/export4/export4.txt

注意:shell中的重定向符号>只能捕获程序的标准输出

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 算法板子:欧拉函数——求一个数的欧拉函数、线性时间内求1~n所有数的欧拉函数
  • 宝兰德JVM参数查看及优化
  • 使用ubuntu串口数据收和发不一致问题
  • SpringAOP面向切面编程的概念和使用
  • 萱仔求职系列——1.1 机器学习基础知识复习
  • Redisson 实现分布式锁
  • vue2项目微信小程序的tabs切换效果
  • 学单片机怎么在3-5个月内找到工作?
  • 2024杭电多校(7) 1007. 创作乐曲【线段树预处理、dp、思维】
  • STM32的SDIO接口详解
  • 梅特勒金属探测器检测仪维修SAFELINE V3-QF1
  • 2024年电脑录屏软件推荐:捕捉屏幕,记录生活,分享精彩
  • Flink 实时数仓(八)【DWS 层搭建(二)流量域、用户域、交易域搭建】
  • 【JavaEE初阶】CAS(比较和交换)
  • OrangePi AIpro学习4 —— 昇腾AI模型应用
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【RocksDB】TransactionDB源码分析
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • ComponentOne 2017 V2版本正式发布
  • Docker: 容器互访的三种方式
  • gf框架之分页模块(五) - 自定义分页
  • HTTP请求重发
  • JavaScript中的对象个人分享
  • scrapy学习之路4(itemloder的使用)
  • Spring声明式事务管理之一:五大属性分析
  • Vue全家桶实现一个Web App
  • Web设计流程优化:网页效果图设计新思路
  • 阿里云Kubernetes容器服务上体验Knative
  • 官方解决所有 npm 全局安装权限问题
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 离散点最小(凸)包围边界查找
  • 码农张的Bug人生 - 初来乍到
  • 浅谈Golang中select的用法
  • 日剧·日综资源集合(建议收藏)
  • 世界上最简单的无等待算法(getAndIncrement)
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 鱼骨图 - 如何绘制?
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​人工智能书单(数学基础篇)
  • # Apache SeaTunnel 究竟是什么?
  • ###STL(标准模板库)
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #pragma once
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (笔记)M1使用hombrew安装qemu
  • (六)Flink 窗口计算
  • (南京观海微电子)——I3C协议介绍
  • (三分钟)速览传统边缘检测算子
  • (十三)MipMap
  • (五)关系数据库标准语言SQL
  • (一)模式识别——基于SVM的道路分割实验(附资源)