查询数据:

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导入导出数据案例的更多相关文章

  1. Mysql & Hive 导入导出数据

    ---王燕行转列sql select split(concat_ws(',',collect_set(cast(smzq as string))),',')[1] ,split(concat_ws(' ...

  2. Hive导入导出数据的方法

    Hive导入数据的方式 官网文档: LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (p ...

  3. 利用sqoop将hive数据导入导出数据到mysql

    一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令  #  sqoop list-databases --connect jdbc:mysql://localhost:3306 ...

  4. 【转】Hive导入10G数据的测试

    原博文出自于: http://blog.fens.me/hadoop-hive-10g/ 感谢! Hive导入10G数据的测试 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让H ...

  5. Hive导入10G数据的测试

    Hive导入10G数据的测试 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务. 现在硬件越来越便宜,一台非 ...

  6. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. mysql导入导出数据中文乱码解决方法小结

    linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqld ...

  8. Android开发笔记:SQLite导入导出数据

    SQLite是Android中最方便使用的数据库了,现在看下如何快速的在SQLite中导入导出数据. 首先由于是.NET项目转Android,原有数据库使用的是SQLSERVER,由于项目相同部分结构 ...

  9. 解决mysql导入导出数据乱码问题

    最近在linux上面用mysqldump导出数据,放在windows系统中导入就会出现中文乱码,然后就会导致出现: Unknown MySQL server host和Can't connect to ...

随机推荐

  1. qt 透明化方法汇总

    一. QT 透明设置 背景,标题栏透明,下级Widget,painter绘出来的(比如,drawtext,drawline)不透明 QWidget window; window.setWindowFl ...

  2. 自适应增强(Adaptive Boosting)

    简介 AdaBoost,是英文”Adaptive Boosting“(自适应增强)的缩写,是一种迭代提升算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成 ...

  3. Vijos 1456 最小总代价 (状压dp)

    看到这道题n只有16,就可以想到状压dp 每个人只有经过或者没经过,那就用1表示经过,0表示没经过 但是不是当前在谁那里,所以再加一维来记录 所以f[state][i]表示在物品在i,当前的状态是st ...

  4. 洛谷——T P2136 拉近距离

    https://www.luogu.org/problem/show?pid=2136 题目背景 我是源点,你是终点.我们之间有负权环. ——小明 题目描述 在小明和小红的生活中,有N个关键的节点.有 ...

  5. HDU——T 2119 Matrix

    http://acm.hdu.edu.cn/showproblem.php?pid=2119 Time Limit: 5000/1000 MS (Java/Others)    Memory Limi ...

  6. IntegerToBinaryString

    IntegerToBinaryString 方法写的非常的巧妙:佩服佩服! package com.stono.jdk; public class IntegerToBinaryString { pu ...

  7. iOS开发UI调试神器----Reveal

    做iOS的开发,UI是非常非常重要的一环.调试时我们一般用模拟器,提交前用真机做測试.用模拟器来调试UI效果尽管快捷方便,但有时仍然希望有更强大的工具来帮助分析UI,尤其是专注在UI的效果调试时.近期 ...

  8. BZOJ 3160 FFT+Manacher

    思路: 这道题思路好奇怪--. 我们先要知道关于x (x可以是间隙) 对称的有几对字母 显然暴力是n^2的 那怎么办呢 先把所有'a'看成1 'b'看成0 意外的发现 这不就是卷积嘛 再倒过来搞一搞 ...

  9. 找出 alter system kill session ‘sid,serial#’ kill 掉的数据库会话对应进程

    当我们使用alter system kill session ‘sid,serial#’ 在数据库中kill掉某个会话的时候,如果你观察仔细会发现v$session.paddr发生了改变,从而是的不能 ...

  10. 我所认识的EXT2(一)

    前言: 本文是笔者自己在学习文件系统中的一些体会,写出来和大家分享一下.本文首先是介绍了下文件系统的一些理论概念,然后分析了ext2文件系统的原理和部分源码. 文件系统是什么: 人们在认识一件陌生事物 ...