【大数据之Hive】十、Hive之DML(Data Manipulation Language)数据操作语言

news/2024/5/20 5:30:45 标签: 大数据, hive, hadoop, 数据库, hdfs

1 Load

将文件导入Hive表中。
语法:

hive>load data [local] inpath 'filepath' [overwrite] into table tablename [partition (partcol1=val1, ...)];

关键字说明:
(1)local:表示从本地加载数据到Hive表;否则从HDFS加载数据到HIve表。
(2)overwrite:表示覆盖表中已有数据,否则表示追加。
(3)partition:表示上传到指定分区,若目标是分区表则需要指定分区。
如:

-- 先创建一张表:
create table student(
    id int,
    name string
)
row format delimited fields terminated by '\t';

-- 加载本地文件到hive:
load data local inpath '/opt/module/hive/datas/student.txt' into table student;

-- 加载HDFS文件到hive--上传文件到HDFDS:
hadoop fs -put /opt/module/hive/datas/student.txt /user/liaoyanxia
    -- 加载HDFS上数据,导入完成后去HDFS上查看文件是否存在:
load data inpath '/user/liaoyanxia/student.txt' into table student;

-- 加载数据覆盖表中已有数据:
    -- 上传文件到HDFS:
dfs -put /opt/module/datas/student.txt /user/liaoyanxia;
    -- 加载数据覆盖表中已有数据:
load data inpath '/user/liaoyanxia/student.txt' overwrite into table student;

2 Insert

2.1 将查询值插入表中

语法:

insert (into | overwrite) table tablename [partition (partcal1=val1, ...)] select_statement;

关键字说明:
(1)into:将结果追加到目标表。
(2)overwrite:用结果覆盖原有数据。
如:

-- 先创建一张表:
create table student1(
    id int,
    name string
)
row format delimited fields terminated by '\t';

--根据查询结果插入数据:
insert overwrite table student1 select id,name from student;

2.2 将给定的value插入表中

语法:

insert (into | overwrite) table tablename [partition (partcal1=[val1], ...)] values values_row [(index,'values_row'), ...];

如:

insert into table student1 values(1,'wangwu'),(2,'zhaoliu');

2.3 将查询的结果写入目标路径

语法:

insert overwrite [local] directory directory [row format roe_format] [stored ass file_format] select_statement;

如:

insert overwrite local directory '/opt/module/hive/datas/student' row format serde 'org.apache.hadoop.hive.serde2.JsonSerDe' select id,name from student;

3 Export & Import

  Export到此处语句将表的数据和元数据信息导出到HDFS路径;Import将Expot导出的内容导入Hive,恢复表中的数据和元数据。
  Export和Import用于两个Hive实例间的数据迁移。
语法:

-- 导出:
export table tablename to 'export_target_path';

-- 导入:
import [external] table new_or_original_tablename from 'source_path' [location 'import_target_path'];

如:

-- 导出:
export table default.student to '/user/hive/warehouse/export/student';

-- 导入:
import table student2 from 'user/hive/warehouse/export/student';

http://www.niftyadmin.cn/n/426034.html

相关文章

Element-UI技巧分享:自定义拖拽列表的制作方法

部分数据来源:ChatGPT 引言 当我们使用 Element-UI 的自定义拖拽列表时,有时候需要根据拖拽的字段位置,将数据组成不同的列表进行显示。这种情况下,我们可以通过一些简单的操作,来实现自定义拖拽列表中的分类展示。 …

软件测试项目实战,我们拿到项目第一步应该怎么做【附过程文档】

对于从事软件研发的组织来说,工作类型至少包括项目管理、产品设计、编码、测试、质量保证和软件配置管理,以及其它人员,如文档编制人员和美工人员/系统硬件管理人员等。根据职能需要,可以以半独立方式进行部门和项目的矩阵管理&am…

相约未名湖畔,百度商业AI技术创新大赛携手北大学子共探AI发展

火热六月,百度商业AI技术创新大赛正在如火如荼的进行,百度商业与高校合作展开全国巡回宣讲会,吸引高校学子参与,激发创新思维,为科技发展注入源源不断的新生力量。6月6日,百度商业AI技术创新大赛走进北京大…

2.4 逻辑代数的基本定理

学习目标: 如果我要学习逻辑代数的基本定理,我会采取以下步骤: 1. 学习基本概念:首先,我会花时间了解逻辑代数的基本概念,如逻辑运算符(合取、析取、否定等)、真值表、逻辑等价性等…

2023-06-12 stonedb-包含内连接外连接派生表in子查询和聚合-查询结果错误-处理后反思

摘要: stonedb-包含内连接外连接派生表in子查询和聚合-查询结果错误-处理后反思 反思: 一. 转入JOIN::exec执行 当tianmu层无法执行时, 转入mysql/sql层的JOIN::exec执行, 那么JOIN::exec的执行究竟是在执行哪些语法树的分支? 还是从头到尾全部执行?有哪些场景, 可以转入JOI…

leetcode 不同路径II(dp)

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角…

PB技巧3例(如何获取当前的工作路径、将已经建好的Grid类型转为Tabular类型、右键弹出菜单的编程)

PB技巧3例(如何获取当前的工作路径、将已经建好的Grid类型转为Tabular类型、右键弹出菜单的编程): 1、PB如何获取当前的工作路径 当前程序的运行路径是比较重要的一项,开发应用软件时需要注意,程序要根据用户的安装情况自己检测当前的路径。所以,获取当前路径是应用程序…

深度学习pytorch实战五:基于ResNet34迁移学习的方法图像分类篇自建花数据集图像分类(5类)超详细代码

1.数据集简介 2.模型相关知识 3.split_data.py——训练集与测试集划分 4.model.py——定义ResNet34网络模型 5.train.py——加载数据集并训练,训练集计算损失值loss,测试集计算accuracy,保存训练好的网络参数 6.predict.py——利用训练好的网…