hive之数据导入导出
hive数据导入导出
一、导入数据4种方式
建表语句
create table test(
name string,
friends array,
children map<string, int>,
address struct<street:string, city:string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n'; row format delimited fields terminated by ',' – 列分隔符
collection items terminated by '_' --MAP STRUCT 和 ARRAY 的分隔符(数据分割符号)
map keys terminated by ':' – MAP中的key与value的分隔符
lines terminated by '\n'; – 行分隔符
1、本地文件导入到Hive表,需提前创建表
row format delimited fields terminated by '|'
lines terminated by '\n'
stored as textfile;
load data local inpath "/tmp/user/data/demo_local.parquet" into table db_tmp.demo_local;
2、HDFS文件导入到Hive表,需提前创建表
load data inpath "/tmp/user/data/demo_hdfs.parquet" into table db_tmp.demo_hdfs;
3、Hive表导入到Hive表
insert into table demo_hive select * from demo_hive_b;
4、创建表时从其他Hive表导入
create table demo_a as select * from demo_hive_b;
5、通过sqoop将mysql库导入到Hive表
-- 默认导入到default库
sqoop import --connect
jdbc:mysql://127.0.0.1:3306/casedb
--username root
--password password
--table demo --hive-import
--create-hive-table -m 1 -- 指定导入的数据库
sqoop import --connect
jdbc:mysql://127.0.0.1:3306/casedb
--username root
--password root --table demo
--hive-import --create-hive-table
--hive-table database.demo -m 1
二、导出数据
1、导出到本地
insert overwrite local directory
"/home/hadoop/data/"
row format dilimited
fields terminated by ","
select * from demo_hive_b;
2、导出到HDFS
insert overwrite directory
"/home/hadoop/data/"
row format dilimited
fields terminated by ","
select * from demo_hive_b;
3、Hive命令行导出
# Linux bash终端 # 重定向方式
hive -e "select * from demo_hive_b" >>
/home/hadoop/data/demo_output.txt # sql文件方式
echo "select * from demo_hive_b" >
/home/hadoop/data/demo_output.sql
hive -f /home/hadoop/data/demo_output.sql >>
/home/hadoop/data/demo_output.txt
4、导出文件时,会遇本来表中本来字段值为null的字段导出时为\n
insert overwrite directory '/data/files/map_table_4'
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'field.delim'=',',
'serialization.format'= '',
'serialization.null.format'=''
) STORED AS TEXTFILE
select foo, null, bar from map_table;
三、备注
1)设置 alter table name SET SERDEPROPERTIES('serialization.null.format' = '\N');
则:底层数据保存的是'\N',通过查询显示的是'NULL'
这时如果查询为空值的字段可通过 语句:a is null 或者 a='\\N'
2)设置 alter tablename SET SERDEPROPERTIES('serialization.null.format' = 'NULL');
则:底层数据保存的是'NULL',通过查询显示的是'NULL'
这时如果查询为空值的字段可通过 语句:a is null 或者 a='NULL'
3)设置 alter tablename SET SERDEPROPERTIES('serialization.null.format' = '');
则:底层数据保存的是'',通过查询显示的是'NULL'
'' 与 length(xx)=0
'' 表示的是字段不为null且为空字符串,此时用 a is null 是无法查询这种值的,必须通过 a='' 或者 length(a)=0 查询。
hive之数据导入导出的更多相关文章
- 2.11 Hive中数据导入导出Import和Export使用
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ImportExport 一.Export.Import Export ...
- kettle连接Hive中数据导入导出(6)
1.hive往外写数据 http://wiki.pentaho.com/display/BAD/Extracting+Data+from+Hive+to+Load+an+RDBMS 连接hive
- 数据仓库Hive数据导入导出
Hive库数据导入导出 1.新建表data hive (ebank)> create table data(id int,name string) > ROW FORMAT DELIMIT ...
- 如何利用sqoop将hive数据导入导出数据到mysql
运行环境 centos 5.6 hadoop hive sqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具. 上海尚学堂 ...
- 从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上
阅读目录 序 导入文件到Hive 将其他表的查询结果导入表 动态分区插入 将SQL语句的值插入到表中 模拟数据文件下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并 ...
- Hive 实战(1)--hive数据导入/导出基础
前沿: Hive也采用类SQL的语法, 但其作为数据仓库, 与面向OLTP的传统关系型数据库(Mysql/Oracle)有着天然的差别. 它用于离线的数据计算分析, 而不追求高并发/低延时的应用场景. ...
- Hive常用操作之数据导入导出
一.Hive数据导入导出 1.hive数据导出 很多时候,我们在hive中执行select语句,希望将最终的结果保存到本地文件或者保存到hdfs系统中或者保存到一个新的表中,hive提供了方便的关键词 ...
- 利用sqoop将hive数据导入导出数据到mysql
一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令 # sqoop list-databases --connect jdbc:mysql://localhost:3306 ...
- Sqoop -- 用于Hadoop与关系数据库间数据导入导出工作的工具
Sqoop是一款开源的工具,主要用于在Hadoop相关存储(HDFS.Hive.HBase)与传统关系数据库(MySql.Oracle等)间进行数据传递工作.Sqoop最早是作为Hadoop的一个第三 ...
随机推荐
- PHP切割汉字
<?php /* @UTF-8编码的字符可能由1~3个字节组成. */ /*--------------------------方法一截取中文字符串方法--------------------- ...
- 关于又拍云免费cdn全网加速服务的长期评测(各种踩坑)
原文转载自「刘悦的技术博客」 ( https://v3u.cn/a_id_128 ) 妇孺皆知,前端优化中最重要的优化手段之一就是cdn加速,所谓cdn加速就是采用更多的缓存服务器(CDN边缘节点), ...
- Java8新特性: CompletableFuture详解
CompletableFuture实现了CompletionStage接口和Future接口,前者是对后者的一个扩展,增加了异步回调.流式处理.多个Future组合处理的能力,使Java在处理多任务的 ...
- 论文解读(soft-mask GNN)《Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks》
论文信息 论文标题:Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks论文作者:Mingqi Yang, Ya ...
- JVM 配置参数 -D,-X,-XX 的区别
转载请注明出处: 最近在安全护网行动,需要针对服务进行不断的安全加固,如 对服务的 log4j 的安全配置进行防护,对 fastjson 的漏洞进行安全加固等,最快的防护方法就是通过在服务启动的时候, ...
- Spring 03 切面编程
简介 AOP(Aspect Oriented Programming),即面向切面编程 这是对面向对象思想的一种补充. 面向切面编程,就是在程序运行时,不改变程序源码的情况下,动态的增强方法的功能. ...
- java-数组排序之冒泡排序(经典排序)
public class BubbleSort { public static void main(String[] args) { /*冒泡排序不一定是用时最短的 * 1)声明整型数组arr,包含1 ...
- 从零搭建云原生技术kubernetes(K8S)环境-通过kubesPhere的AllInOne方式
前言 k8s云原生搭建,步骤有点多,但通过kubesphere,可以快速搭建k8s环境,同时有一个以 Kubernetes 为内核的云原生分布式操作系统-kubesphere,本文将从零开始进行kub ...
- zkw线段树——简单易懂好写好调的线段树
0.简介 zkw线段树是一种非递归线段树,与普通线段树不同的是,它是棵标准的满二叉树,所以遍历过程可全程使用位运算,常数一般比线段树小得多. 1.结构/建树 前面说了,zkw线段树是满二叉树,可是原数 ...
- iOS 苹果集成登录及苹果图标的制作要求
前言 如果要上架的应用集成了三方登录,那么在审核时,苹果会强制要求应用也要集成苹果登录.如果应用没有集成一般情况下都会被审核团队给打回来. 苹果集成登录 首先,你需要在开发者中心,找到你的应用,勾选上 ...