• Hive基础(DML 数据操作)


    数据导入

    向表中装载数据(Load)

    load data [local] inpath '数据的 path' [overwrite] into table student [partition (partcol1=val1,)];
    
    • 1
    1. load data:表示加载数据
    2. local:表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表
    3. inpath:表示加载数据的路径
    4. overwrite:表示覆盖表中已有数据,否则表示追加
    5. into table:表示加载到哪张表
    6. student:表示具体的表
    7. partition:表示上传到指定分区

    实操案例

    1. 创建一张表
    create table student(id string,name string) row format delimited fields terminated by '\t';
    
    • 1

    在这里插入图片描述

    在目录下新建一个 student.txt 的文件
    里面内容如下:

    在这里插入图片描述

    加载本地文件到 hive

    load data local inpath '/root/student.txt' into table student;
    
    • 1

    在这里插入图片描述

    加载 HDFS 文件到 hive 中

    上传文件到 HDFS

    dfs -put /root/student.txt /user/root/hive;
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

    加载 HDFS 上数据

    load data inpath '/user/root/hive' into table student;
    
    • 1

    在这里插入图片描述

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

    1. 上传文件到 HDFS
    dfs -put '/root/student.txt' '/user/root/hive';
    
    • 1

    在这里插入图片描述

    1. 加载数据覆盖表中已有的数据
    load data inpath '/user/root/hive' overwrite into table student;
    
    • 1

    在这里插入图片描述

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

    • 创建一张表
    create table student_par(id int,name string) row format delimited fields terminated by '\t';
    
    • 1

    在这里插入图片描述

    • 基本插入数据
    insert into student_par values(1,'wangwu'),(2,'zhaoliu');
    
    • 1

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

    • 基本模式插入(根据单张表查询结果)
    insert overwrite table student_par select id,name from student;
    
    • 1

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

    insert into:以追加数据的方式插入到表或分区,原有数据不会删除 insert overwrite:会覆盖表中已存在的数据
    注意:insert 不支持插入部分字段

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

    • 根据查询结果创建表(查询的结果会添加到新创建的表中)
    create table if not exists student3 as select id,name from student;
    
    • 1

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

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

    1. 上传数据到 hdfs 上
    dfs -mkdir /student;
    dfs -put /root/student.txt /student;
    
    • 1
    • 2

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

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

    在这里插入图片描述

    数据导出

    Insert 导出

    将查询的结果导出到本地

    insert overwrite local directory '/root/hivedata' select * from student;
    
    • 1

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

    将查询的结果导出到 HDFS 上(没有 local)

    insert overwrite directory '/root/hivedata' select * from student;
    
    • 1

    在这里插入图片描述

    Hadoop 命令导出到本地

    dfs -get /user/hive/warehouse/dome1.db/student3 /root/hivedata;
    
    • 1

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

  • 相关阅读:
    【wiki知识库】09.欢迎页面展示(浏览量统计)SpringBoot部分
    vue课程79 介绍并安装vue-cli
    【Redis学习笔记】第十四章 Redis企业级解决方案与性能监控
    《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第7章 数据挖掘
    【05】Yarn
    最好用的6个图片素材网,高清无水印、免费下载、访问流畅。
    探索社会工程的深度:从定义到高级攻击策略
    使用Charles和iPhone进行微信小程序抓包详解
    python判断是否为回文字符串
    AI换脸之Faceswap技术原理与实践
  • 原文地址:https://blog.csdn.net/weixin_51309151/article/details/126888624