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

数据导入

  • 向表中装在数据(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只能删除管理表,不能删除外部表中数据

发布了112 篇原创文章 · 获赞 57 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_38358499/article/details/105380846