• Hive——DML(Data Manipulation Language)数据操作语句用法详解


    DML

    1.Load

    Load语句可将文件导入到Hive表中。

    hive> 
    LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)];
    
    
    • 1
    • 2
    • 3

    关键字说明:

    • local表示从本地加载数据到Hive表;否则从HDFS加载数据到Hive表
    • overwrite表示覆盖表中已有数据,否则表示追加。
    • partition表示上传到指定分区,若目标是分区表,需指定分区

    1.加载本地文件到hive

    本地文件路径:
    在这里插入图片描述
    执行load语句:
    load data local inpath '/opt/module/hive-3.1.3/datas/student.txt' into table student;
    在这里插入图片描述

    查询数据(select * from student):
    在这里插入图片描述

    在这里插入图片描述

    2.加载数据覆盖表中已有的数据

    load data local inpath '/opt/module/hive-3.1.3/datas/student.txt' overwrite into table student;
    在这里插入图片描述
    在这里插入图片描述

    3.加载HDFS文件到hive

    上传文件到HDF根目录:
    在这里插入图片描述
    在这里插入图片描述
    执行加载文件语句:
    load data inpath '/student.txt' into table student;
    在这里插入图片描述
    在这里插入图片描述

    从本地加载是copy的过程,从HDFS加载是move的过程。


    2.Insert

    1.将查询结果插入表中

    INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement;

    • INTO将结果追加到目标表
    • OVERWRITE用结果覆盖原有数据

    (1)新建一张表

    hive (default)> 
    create table student1(
        id int, 
        name string
    ) 
    row format delimited fields terminated by '\t';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    (2)根据查询结果插入数据
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    hive (default)> insert overwrite table student2 
    select 
        id, 
        name 
    from student;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


    2.将给定Values插入表中

    INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION (partcol1[=val1], partcol2[=val2] ...)] VALUES values_row [, values_row ...]

    hive (default)> insert into table  student1 values(1,'wangwu'),(2,'zhaoliu');
    
    • 1

    在这里插入图片描述
    在这里插入图片描述


    3.将查询结果写入目标路径

    INSERT OVERWRITE [LOCAL] DIRECTORY directory [ROW FORMAT row_format] [STORED AS file_format] select_statement;

    insert overwrite local directory '/opt/module/datas/student' ROW FORMAT S ERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    select id,name from student;
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述


    3.Export&Import

    • Export导出语句可将表的数据和元数据信息一并导出到HDFS的路径
    • Import可将Export导出的内容导入Hive,表的数据和元数据信息都会恢复
    • ExportImport可用于两个Hive实例之间的数据迁移。
    --导出
    EXPORT TABLE tablename TO 'export_target_path'
    
    --导入
    IMPORT [EXTERNAL] TABLE new_or_original_tablename FROM 'source_path' [LOCATION 'import_target_path']
    
    • 1
    • 2
    • 3
    • 4
    • 5

    示例:

    --导出
    hive>
    export table default.student to '/user/hive/warehouse/export/student';
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    --导入
    hive>
    
    import table student2 from '/user/hive/warehouse/export/student';
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

  • 相关阅读:
    java: PushbackInputStream
    窗函数法设计FIR中,如何选择窗函数和阶数N
    EureKa服务注册与发现(集群部署Eureka与支付模块集群部署、订单模块访问负载均衡调用支付服务实现)
    PMP每日一练 | 考试不迷路-8.4(包含敏捷+多选)
    Eureka注册中心
    使用Eclipse搭建SpringBoot项目
    eclipse svn插件安装
    multipath的操作
    软件培训测试高级工程师多测师肖sir__html之作业11
    虹科方案 | 释放总线潜力:汽车总线离线模拟解决方案
  • 原文地址:https://blog.csdn.net/weixin_48935611/article/details/138145219