hive导入导出数据案例
查询数据:
use ods;set /user.password=ODS-SH;select * from base_cdma_all limit 10;
use tag_bonc;select * from dpi_http_userapp_statistics limit 100000;
#设置显示当前使用的数据库
set hive.cli.print.current.db=true;
#设置不优先使用MapReduce
set hive.exec.mode.local.auto=true;
======================导出数据=============================
#导出hive数据到本地(事先要建好文件夹)
use myexec;
insert overwrite local directory '/home/hadoop/res'
row format delimited
fields terminated by '\t'
select column1,column2 from table1;
#不显式指定分隔符将会以默认的分隔符来切割列
use myexec;
insert overwrite local directory '/home/hadoop/res'
select * from table1;
#导出hive数据到HDFS(不要事先建好文件夹)
use myexec;
insert overwrite directory '/hive_data_to_hdfs'
select * from table1;
#导出到Hive的还有一个表中
use myexec;
insert into table2
row format delimited
fields terminated by '\t'
select * from table1;
#用hive的-e和-f參数来导出数据。当中-e 表示后面直接接带双引號的sql语句;而-f是接一个文件(文件的内容为一个sql语句)
hive -e "use myexec;select * from table1" >> /home/hadoop/res/data1.txt
#这样的方式不会启用MapReduce
hive -f mytest.hql >> /home/hadoop/res.txt
当中mytest.hql内容为:
use myexec;
select * from table1;
=====================导入数据==========================
外部表、内部表都能够分别载入本地和HDFS上的数据,创建表时最好指定列分隔符
内部表假设使用load data命令,都是把hdfs上的数据(假设是本地数据则先上传到HDFS)移动(剪切)到数据仓库所在文件夹
外部表假设在创建时指定了存放数据的路径,则在load data时数据是被移动到创建表时指定的文件夹,否则同上
两者的主要差别是:
外部表建表的同一时候指定hdfs路径。在数据复制到指定hdfs路径的同一时候。也同一时候完毕数据插入external表(仅仅是保持映射关系),此时数据没有被移动(数据仓库里没有显式存放该数据)
删除内部表会把数据一起删除,而删除外部表则仅仅是使得在hive下查询不到此表(元数据被删了),数据本身没有被删除,依旧存在对应的数据仓库文件夹下
#改动存储路径
alter table table1
set location 'hdfs://172.16.122.200:8020/data/datatest.txt';
#创建外部表时指定位置(在数据复制到指定hdfs路径的同一时候,数据插入该external表)
#这样的方式经常常使用于当hdfs上有一些历史数据,而我们须要在这些数据上做一些hive的操作时使用,这样的方式避免了数据拷贝开销
CREATE EXTERNAL TABLE MYTEST(num INT, name STRING)
COMMENT 'this is a test'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION '/data/test';
#创建一个測试用表(内部表)
CREATE TABLE MYTEST2(num INT, name STRING)
COMMENT 'this is a test2'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
1)数据不在hdfs上,直接从本地(local)导入hive表
这样的方式导入的本地数据能够是一个文件,一个目录或者通配符,须要注意的是,假设是目录,目录内不能包括子目录,相同,通配符仅仅能通配文件
LOAD DATA LOCAL INPATH '/home/work/test.txt' [OVERWRITE] INTO TABLE MYTEST2;
2)从hdfs导入数据
LOAD DATA INPATH '/data/test/test.txt' [OVERWRITE] INTO TABLE MYTEST2 [PARTITION (ds='2008-08-15')];
3)从其他表导入数据
FROM MYTEST3 test3
INSERT OVERWRITE TABLE MYTEST2
select test3.num where name='world';
4)在创建表的时候通过从别的表中查询出对应的记录并插入到所创建的表中
create table test4
as
select id, name, tel
from wyp;
hive导入导出数据案例的更多相关文章
- Mysql & Hive 导入导出数据
---王燕行转列sql select split(concat_ws(',',collect_set(cast(smzq as string))),',')[1] ,split(concat_ws(' ...
- Hive导入导出数据的方法
Hive导入数据的方式 官网文档: LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (p ...
- 利用sqoop将hive数据导入导出数据到mysql
一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令 # sqoop list-databases --connect jdbc:mysql://localhost:3306 ...
- 【转】Hive导入10G数据的测试
原博文出自于: http://blog.fens.me/hadoop-hive-10g/ 感谢! Hive导入10G数据的测试 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让H ...
- Hive导入10G数据的测试
Hive导入10G数据的测试 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务. 现在硬件越来越便宜,一台非 ...
- CRL快速开发框架系列教程九(导入/导出数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- mysql导入导出数据中文乱码解决方法小结
linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqld ...
- Android开发笔记:SQLite导入导出数据
SQLite是Android中最方便使用的数据库了,现在看下如何快速的在SQLite中导入导出数据. 首先由于是.NET项目转Android,原有数据库使用的是SQLSERVER,由于项目相同部分结构 ...
- 解决mysql导入导出数据乱码问题
最近在linux上面用mysqldump导出数据,放在windows系统中导入就会出现中文乱码,然后就会导致出现: Unknown MySQL server host和Can't connect to ...
随机推荐
- 2015 Multi-University Training Contest 6 hdu 5358 First One
First One Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- Lock-less and zero copy messaging scheme for telecommunication network applications
A computer-implemented system and method for a lock-less, zero data copy messaging mechanism in a mu ...
- python写个简单的文件上传是有多难,要么那么复杂,要么各种,,,老子来写个简单的
def upload(url,params): ''' 上传文件到server,不适合大文件 @params url 你懂的 @params {"action":"xxx ...
- 343D/Codeforces Round #200 (Div. 1) D. Water Tree dfs序+数据结构
D. Water Tree Mad scientist Mike has constructed a rooted tree, which consists of n vertices. Each ...
- 为QML创建C++插件(下载)
版权声明:本文为博主原创文章,欢迎转载,转载请注明出处 https://blog.csdn.net/MatchYang/article/details/54564462 1. 为QML创建C++插件的 ...
- GitHub客户端和Shell的基本操作和理解
GitHub客户端和Shell指令的简单实用 客户端操作, web端操作, shell指令操作. 掌握了这三种操作,基本上就可以很好的运用gitHub了. 创建项目, 可以通过web端进行创建. 可以 ...
- Oracle 11g AWR生成报告
1.生成单实例 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrrpt.sql 2.生成 Oracle RAC AWR 报告: @$ORACLE_HOME/rdbms/adm ...
- 93.快速搭建Web环境 Angularjs + Express3 + Bootstrap3
转自:https://www.cnblogs.com/wawahaha/p/3946023.html 前言 Angularjs越用越顺手,不仅代码量比jQuery少很多,而且实现思路特别清晰,构建大型 ...
- jsp页面String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";作用!!!!!
转自:https://blog.csdn.net/kiwangruikyo/article/details/81130311 <%String path = request.getContext ...
- MYSQL 5.7 MHA(GTID+ROW)部署及failover,online_change实战演练
文章结构如下: 1.MHA简介 Masterhigh availability manager and toolsfor mysql,是日本的一位mysql专家采用perl语言编写的一个脚本管理工具, ...