zoukankan      html  css  js  c++  java
  • Hive基础(六):Hive语法(2) DML(1) 数据操作(数据导入/数据导出)

    1 数据导入

    1.1 向表中装载数据(Load)
    1.语法
    hive> load data [local] inpath '/opt/module/datas/student.txt' [overwrite] into table student
    [partition (partcol1=val1,…)];
    (1)load data:表示加载数据
    (2)local:表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表
    (3)inpath:表示加载数据的路径
    (4)overwrite:表示覆盖表中已有数据,否则表示追加
    (5)into table:表示加载到哪张表
    (6)student:表示具体的表
    (7)partition:表示上传到指定分区
    2.实操案例
    (0)创建一张表
    hive (default)> create table student(id string, name string) row format delimited 
    fields terminated by '	';
    (1)加载本地文件到 hive
    hive (default)> load data local inpath '/opt/module/datas/student.txt' into table 
    default.student;
    (2)加载 HDFS 文件到 hive 中
    上传文件到 HDFS
    hive (default)> dfs -put /opt/module/datas/student.txt /user/atguigu/hive;
    加载 HDFS 上数据
    hive (default)> load data inpath '/user/atguigu/hive/student.txt' into table 
    default.student;
    (3)加载数据覆盖表中已有的数据
    上传文件到 HDFS
    hive (default)> dfs -put /opt/module/datas/student.txt /user/atguigu/hive;
    加载数据覆盖表中已有的数据
    hive (default)> load data inpath '/user/atguigu/hive/student.txt' overwrite into 
    table default.student;
    1.2 通过查询语句向表中插入数据(Insert)
    1.创建一张表
    hive (default)> create table student_par(id int, name string) row format 
    delimited fields terminated by '	';
    2.基本插入数据
    hive (default)> insert into table student_par 
    values(1,'wangwu'),(2,'zhaoliu');
    3.基本模式插入(根据单张表查询结果)
    hive (default)> insert overwrite table student_par
     select id, name from student where month='201709';
    insert into:以追加数据的方式插入到表或分区,原有数据不会删除
    insert overwrite:会覆盖表或分区中已存在的数据
    注意:insert 不支持插入部分字段
    4.多表(多分区)插入模式(根据多张表查询结果)
    hive (default)> from student
     insert overwrite table student partition(month='201707')
     select id, name where month='201709'
     insert overwrite table student partition(month='201706')
     select id, name where month='201709';
    1.3 查询语句中创建表并加载数据(As Select)
    详见 4.5.1 章创建表。
    根据查询结果创建表(查询的结果会添加到新创建的表中)
    create table if not exists student3
    as select id, name from student;
    1.4 创建表时通过 Location 指定加载数据路径
    1.上传数据到 hdfs 上
    hive (default)> dfs -mkdir /student;
    hive (default)> dfs -put /opt/module/datas/student.txt /student;
    2. 创建表,并指定在 hdfs 上的位置
    hive (default)> create external table if not exists student5(
     id int, name string
     )
     row format delimited fields terminated by '	'
     location '/student;
    3.查询数据
    hive (default)> select * from student5;
    1.5 Import 数据到指定 Hive 表中
    注意:先用 export 导出后,再将数据导入。
    hive (default)> import table student2 partition(month='201709') from
    '/user/hive/warehouse/export/student';

    2 数据导出

    2.1 Insert 导出
    1.将查询的结果导出到本地
    hive (default)> insert overwrite local directory 
    '/opt/module/datas/export/student'
     select * from student;
    2.将查询的结果格式化导出到本地
    hive(default)>insert overwrite local directory 
    '/opt/module/datas/export/student1'
     ROW FORMAT DELIMITED FIELDS TERMINATED BY '	' select * from 
    student;
    3.将查询的结果导出到 HDFS 上(没有 local)
    hive (default)> insert overwrite directory '/user/atguigu/student2'
     ROW FORMAT DELIMITED FIELDS TERMINATED BY '	' 
     select * from student;
    2.2 Hadoop 命令导出到本地
    hive (default)> dfs -get /user/hive/warehouse/student/month=201709/000000_0
    /opt/module/datas/export/student3.txt;
    2.3 Hive Shell 命令导出
    基本语法:(hive -f/-e 执行语句或者脚本 > file)
    [atguigu@hadoop102 hive]$ bin/hive -e 'select * from default.student;' >
    /opt/module/datas/export/student4.txt;
    2.4 Export 导出到 HDFS 上
    (defahiveult)> export table default.student to
    '/user/hive/warehouse/export/student';
    export 和 import 主要用于两个 Hadoop 平台集群之间 Hive 表迁移。
    2.5 Sqoop 导出

    3 清除表中数据

    注意:Truncate 只能删除管理表,不能删除外部表中数据
    hive (default)> truncate table student;
     

    本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/13358336.html

  • 相关阅读:
    Session的使用与Session的生命周期
    Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别与使用
    十九、详述 IntelliJ IDEA 之 添加 jar 包
    十八、IntelliJ IDEA 常用快捷键 之 Windows 版
    十七、IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架
    十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法
    十五、详述 IntelliJ IDEA 插件的安装及使用方法
    十四、详述 IntelliJ IDEA 提交代码前的 Code Analysis 机制
    十三、IntelliJ IDEA 中的版本控制介绍(下)
    十二、IntelliJ IDEA 中的版本控制介绍(中)
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13358336.html
Copyright © 2011-2022 走看看