转自:http://blog.chinaunix.net/uid-27177626-id-4653808.html

Hive三种不同的数据导出的方式,根据导出的地方不一样,将这些方法分为三类:
(1)导出到本地文件系统

(2)导出到HDFS

(3)导出到hive的另一个表中

导出到本地文件系统

执行:

hive> insert overwrite local directory '/root/student'

> select * from student;

通过insert overwrite local directory将hive中的表student的内容倒到本地文件系统的/root下的student目录下,这条HQL的执行需要启用Mapreduce完成,运行完这条语句之后,将会在本地文件系统的/root/student目录下生成文件,这个文件是Reduce产生的结果(这里生成的文件名是000000_0),我们可以看看这个文件的内容:

可以看出这就是表student中的数据,数据之间用空格间隔开来。

注:将数据从hive倒到本地文件系统与将数据倒到hive不一样,不能用insert into实现。

导出到HDFS

将hive中的数据导出到HDFS和将数据导出到本地文件系统类似,只是命令的执行中少了一个“local”

可以查看hdfs的对应目录,发现数据确实倒入了指定目录。

将数据导出到hive的另一张表

即:hive> insert into table hive_student_test 
            > select id,name,sex,salary           
            > from student;

前提是在hive中创建好目标表hive_student_test,然后执行上述操作将hive中的student表的数据依据其id,name,sex,salary字段将其导入到目标表中。查询目标表的结果:

在hive0.11.0版本中新引进了一个新的特性,也就是当用户将hive查询结果输出到文件,用户可以只用列的分隔符,而在之前的版本中是不能指定列之间的分隔符的。例如:

hive> insert overwrite local directory '/root/student'

> row format delimited

> fields terminated by '\t'

> select * from student;

还可以用hive的-e和-f参数来导出数据,其中-e表示后面直接带双引号的sql语句;而-f是接一个文件,文件的内容为一个sql语句。如下所示:

执行:./hive -e "select * from student" >> /root/student11.txt

这个得到的结果也是用\t分割的。也可以用-f实现。

执行:./hive -f /root/SQL.sql >> /root/student12.txt

Hive三种不同的数据导出的方式的更多相关文章

  1. Hive中的三种不同的数据导出方式介绍

    问题导读:1.导出本地文件系统和hdfs文件系统区别是什么?2.带有local命令是指导出本地还是hdfs文件系统?3.hive中,使用的insert与传统数据库insert的区别是什么?4.导出数据 ...

  2. 014-HQL中级4-Hive中的三种不同的数据导出方式介绍

    根据导出的地方不一样,将这些方式分为三种:(1).导出到本地文件系统:(2).导出到HDFS中:(3).导出到Hive的另一个表中.为了避免单纯的文字,我将一步一步地用命令进行说明. 一.导出到本地文 ...

  3. Hadoop Hive概念学习系列之hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建(五)

     说在前面的话 以下三种情况,最好是在3台集群里做,比如,master.slave1.slave2的master和slave1都安装了hive,将master作为服务端,将slave1作为服务端. 以 ...

  4. sqlserver 下三种批量插入数据的方法

    本文将介绍三种批量插入数据的方法,需要的朋友可以参考下 本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源 ...

  5. 三种POST和GET的提交方式

    向服务器提交数据有两种方式,post和get.两者的区别主要有三点,安全性.长度限制.数据结构.其中get请求安全性相比较而言较差,数据长度受浏览器地址栏限制,没有方法体.两种都是较为重要的数据提交方 ...

  6. Spring的三种通过XML实现DataSource注入方式

    Spring的三种通过XML实现DataSource注入方式: 1.使用Spring自带的DriverManagerDataSource 2.使用DBCP连接池 3.使用Tomcat提供的JNDI

  7. Android三种基本的加载网络图片方式(转)

    Android三种基本的加载网络图片方式,包括普通加载网络方式.用ImageLoader加载图片.用Volley加载图片. 1. [代码]普通加载网络方式 ? 1 2 3 4 5 6 7 8 9 10 ...

  8. 061 hive中的三种join与数据倾斜

    一:hive中的三种join 1.map join 应用场景:小表join大表 一:设置mapjoin的方式: )如果有一张表是小表,小表将自动执行map join. 默认是true. <pro ...

  9. vb.net-三种将datagridview数据导出为excel文件的函数

    第一种方法较慢,但是数据格式都比较好,需要引用excel的 Microsoft.Office.Interop.Excel.dll  office.dll #Region "导出excel函数 ...

随机推荐

  1. nginx命令:启动,停止及命令参数详解

    nginx命令:启动nginx 在Windows上安装好nginx后,我们需要启动nginx服务,启动nginx服务的命令行操作主要有两种方式,即 1 C:/nginx-0.8.53>nginx ...

  2. rtsp摘要认证协议(Response计算方法)

    rtsp摘要认证协议(Response计算方法) 说明: 例如:OPTIONS rtsp://192.168.123.158:554/11RTSP/1.0   RTSP客户端应该使用username ...

  3. xcode 调试程序 lldb 使用

    xcode 调试程序 lldb 使用 一:lldb是什么 https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/g ...

  4. Adobe Audition3.0 找不到所支持的音频设备 请检查您的音频设置

      Adobe Audition 找不到所支持的音频设备 请检查您的音频设置   解决方案:   运行regedit,打开注册表编辑器,定位到 HKEY_CLASSES_ROOT\CLSID\{AB7 ...

  5. filter中的dispatcher解析

    两种include方式 我自己写了一个original.jsp,另外有一个includedPage.jsp,我想在original.jsp中把includedPage.jsp引进来有两种方式: 1.& ...

  6. 【转发】Visual Studio 2013 如何关闭调试而不关闭IIS Express

    在VS主面板打开:工具->选项->调试->编辑继续   取消选中[启用"编辑并继续"] 就OK了 (英文版的请对应相应的操作) 不过这是针对所有的调试,如果你想针 ...

  7. ubuntu执行级别,设置单用户模式

    redhat的runlevel级别定义例如以下:   0:关机.不能将系统缺省执行级别设置为0,否则无法启动. 1:单用户模式.仅仅同意root用户对系统进行维护. 2:多用户模式.但不能使用NFS( ...

  8. 用oracle建表,必须注意Oracle 关键字(保留字)

    Oracle 关键字(保留字) 大全   转 其实这个东西可以在oracle 上输入一个sql语句就可以得到: select * from v$reserved_words order by keyw ...

  9. EXT-JS 6演示样例程序-Login演示样例程序

    1.        用Sencha Cmd生成应用程序模版 sencha -sdk /path/to/ExtSDK generate app -classic TutorialApp./Tutoria ...

  10. Android 设计的几处硬伤

    [核心提示] 一些 Android App 不仅仅是设计风格的问题,产品交互上也比较混乱,造成用户体验不一致,这一部分原因也是 Android 当初设计时遗留的问题. 前几天看到 NovaDNG 介绍 ...