zoukankan      html  css  js  c++  java
  • Hive常用操作之数据导入导出

    一、Hive数据导入导出

    1、hive数据导出

      很多时候,我们在hive中执行select语句,希望将最终的结果保存到本地文件或者保存到hdfs系统中或者保存到一个新的表中,hive提供了方便的关键词,来实现上面所述的功能。
        1.将select的结果放到一个新表中(首先要用create table创建新的表格)
          insert overwrite table table_name2 select id,name from table_name2;

           将从表table_name2中查询的数据插入到表table_name1中
        2.将select的结果放到本地文件系统中
          insert overwrite local '/tmp/reg_3' row formatted delimited fields terminated by ' ' select * from table table_name;

           在hive环境下,将从表“table_name”中查询到的数据放在本地目录“/tmp/reg_3”下
        3.将select的结果放到hdfs文件系统中
          insert overwrite directory '/tmp/hdfs_out' select a.* from table_name where a.ds='<date>';

          将从表table_name中查询到的数据放在HDFS的'/tmp/hdfs_out'目录下

        4.通过Hadoop命令将表中的数据导入到本地文件目录下

          hadoop fs -get '/hive/t1' /root/data/

          将表目录hive下的表t1中的数据导入到本地目录/root/data/

        5.Shell命令加管道(hive -f/e | sed/grep/awk >file)

          hive -e "select * from table_name" grep key_word

          筛选出table_name表中所有含有key_word字符的数据。

    2、hive数据导入

        1、load data [local] inpath '/data/userdata' [overwrite] into table user;

        将本地数据插入到表user中,插入的数据存放在本地的'/data/userdata'下
         2、创建表的时候直接指定路径

        create external table user(id int,name string) row format delimited fields terminated by '44' lines terminated by '12' stored as textfile localtion '/data/userdata';

        将'/data/userdata'下的数据导入到新创建的外部表user中

         3、创建表之后也可以导入数据到表中

        (1)本机路径

         load data local inpath '/data/data.txt' overwrite into table table_name partition(pt='time');

        (2)Hadoop路径

         load data inpath '/hadoop/data.txt' overwrite into table table_name partition(pt='time');

    上面overwrite关键字会全表覆盖,如果只是想附加数据,将OVERWRITE去掉即可,添加一个分区到表可以利用语句:

        alter table table_name add partition(pt='partition_name') location '/hive/pt=partition_name';

    还可以直接从从其它的表拖数据过来

        insert overwrite table table_name select * from table_name1;

  • 相关阅读:
    Java中的阻塞队列
    大数据笔记
    物联网小笔记
    shell 笔记
    Redis笔记
    rabbitMQ笔记
    java.lang.NoClassDefFoundError: freemarker/template/Template
    分布式系列学习-事务处理
    免费无需破解xshell xftp下载
    idea maven模块变灰或者java文件夹非 Sources文件夹
  • 原文地址:https://www.cnblogs.com/sunfie/p/4373930.html
Copyright © 2011-2022 走看看