hive学习第四章:DDL数据操作

目录

 

一、数据导入

向表中装在数据(Load)

通过查询语句向表中插入数据(Insert)

查询语句中创建表并加载数据(As Select)

创建表时通过Location指定加载数据路径

import数据类型指定hive表中

二、数据导出

 insert导出

hadoop命令导出到本地

hive shell命令导出

export导出到hdfs上

 三、清除表中的数据(truncate)


正文

一、数据导入

  • 向表中装在数据(Load)

  1. 语法
    load data [local] inpath '/opt/module/datas/student.txt' [overwrite] into table student [partition(partcoll=val1, ...)]
    
    /*
    1.load data:表示加载数据
    2.local:表示从本地加载数据到hive表,否则从hdfs加载数据到hive表
    3.inpath:表示加载数据的路径
    4.overwrite:表示复盖表中已有的数据,否则表示追加
    5.into table:表示加载到哪张表
    6.student:表示具体的表
    */

     

  • 通过查询语句向表中插入数据(Insert)

  1. 创建一张分区表
    create table student(id int, name string)
    partitioned by (month string) row format delimited fields
    terminated by '\t'

     

  2. 基本插入数据
    insert into table student partition(month='202004') values(1,'wangwu')

     

  3. 基本模式插入(根据单张表查询结果)
    insert overwrite table student partition(month='202004') select id,name from student where month='202004'

     

  4. 多插入模式(根据多张表查询结果)
    from student 
    insert overwrite table student partition(month='202004') select id, name where month='202004'
    insert overwrite table student partition(month='202005') select id, name where month='202005'
    

     

  • 查询语句中创建表并加载数据(As Select)

    //根据查询结果创建表
    create table if not exists student3
    as select id, name from student

     

  • 创建表时通过Location指定加载数据路径

  1. 创建表,并指定在hdfs上的位置
    create table if not exists student5(
    id int, name string
    )
    row format delimited fields terminated by '\t'
    location '/user/hive/warehouse/student5'

     

  2. 上传数据到hdfs上
    dfs -put /opt/module/datas/student.txt /user/hive/warehouse/student5

     

  • import数据类型指定hive表中

    import table student2 partition(month='202004') from '/user/hive/warehouse/export/student'

    注意:先用export导出后,再将数据导入

二、数据导出

  •  insert导出

  1. 将查询的结果导出到本地
    insert overwrite local directory '/opt/module/datas/export/student' select * from student

     

  2. 将查询的结果格式化导出到本地
    insert overwrite local directory '/opt/module/datas/export/student1' 
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' select * from student

     

  3. 将查询的结果导出到hdfs上(没有local)
    insert overwrite directory '/user/qx/student2'
    ROW FORMAT DELIMITED FIELD TERMINATED BY '\t'
    select * from student

     

  • hadoop命令导出到本地

    dfs -get /user/hive/warehouse/student/month=202004/000000_0 /opt/module/datas/export/student3.txt

     

  • hive shell命令导出

    bin/hive -e 'select * from default.student;' > /opt/module/datas/export/student4.txt

     

  • export导出到hdfs上

    export table default.student to 'user/hive/warehouse/export/student'

     

 三、清除表中的数据(truncate)

truncate table student

注意:truncate只能删除管理表,不能删除外部表中数据

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章