Hive创建外部表教程介绍在 Hive 术语中,外部表是不使用 Hive 管理的表。它们的目的是促进将数据从外部文件导入到元存储中。
外部表数据存储在外部,而 Hive Metastore 仅包含元数据模式。因此,删除外部表不会影响数据。
如何在Hive中创建外部表?在本教程中,你将学习如何在 Hive 中创建、查询和删除外部表。
先决条件
- Ubuntu 18.04 LTS 或更高版本
- 使用 sudo 权限访问命令行
- Apache Hadoop已安装并正在运行
- Apache Hive安装并运行
在 Hive 中创建外部表 - 语法解释在Hive中创建外部表时,需要提供以下信息:
- 表名– 该
create external table
命令创建表。如果系统中已经存在同名表,则会导致错误。为避免这种情况,请添加if not exists
到语句中。表名不区分大小写。 - 列名和类型
——就像表名一样,列名不区分大小写。列类型是诸如
int
、char
、等值string
。 - 行格式– 行使用本机或自定义 SerDe(串行器/解串器)格式。如果未定义行格式,或者将其指定为分隔符,则将使用本机 SerDe。
- 字段终止字符- 这是一个
char
类型字符,用于分隔一行中的表值。 - 存储格式——你可以指定存储格式,例如文本文件、序列文件、jsonfile 等。
- 位置- 这是包含表数据的文件的 HDFS 目录位置。
create external table if not exists [
external-table-name] (
[
column1-name] [
column1-type], [
column2-name] [
column2-type], …)
comment '[
comment]'
row format [
format-type]
fields terminated by '[
termination-character]'
stored as [
storage-type]
location '[
location]';
创建 Hive 外部表 - 示例如何在Hive中创建外部表?出于实际示例的目的,本教程将向你展示如何将数据从 CSV 文件导入到外部表中。
步骤 1:准备数据文件
1. 创建一个名为“countries.csv”的 CSV 文件:
sudo nano countries.csv
2. 对于列表中的每个国家,写一个行号、国家名称、首都和人口(以百万计):
1,USA,Washington,328
2,France,Paris,67
3,Spain,Madrid,47
4,Russia,Moscow,145
5,Indonesia,Jakarta,267
6,Nigeria,Abuja,196
文章图片
步骤 2:将文件导入 HDFS
1. Hive如何创建外部表?创建一个 HDFS 目录。你将使用此目录作为你创建的文件的 HDFS 位置。
hdfs dfs -mkdir [
hdfs-directory-name]
2. 将 CSV 文件导入 HDFS:
hdfs dfs -put [
original-file-location] [
hdfs-directory-name]
文章图片
3.使用
-ls
命令验证文件是否在HDFS文件夹中:hdfs dfs -ls [
hdfs-directory-name]
文章图片
输出显示当前目录中的所有文件。
注意:要了解有关 HDFS 的更多信息,请参阅什么是 HDFS?Hadoop 分布式文件系统指南。
步骤 3:创建外部表 - Hive创建外部表教程
1. 将数据文件导入到 HDFS 后,启动 Hive 并使用上述语法创建外部表。
文章图片
2. 要验证外部表创建是否成功,请键入:
select * from [
external-table-name];
输出应列出你导入表中的 CSV 文件中的数据:
文章图片
3. Hive如何创建外部表?如果你希望使用外部表中的数据创建托管表,请键入:
create table if not exists [
managed-table-name](
[
column1-name] [
column1-type], [
column2-name] [
var2-name], …)
comment '[
comment]';
文章图片
4.接下来,从外部表中导入数据:
insert overwrite table [
managed-table-name] select * from [
external-table-name];
文章图片
5. 验证数据是否成功插入到托管表中。
select * from [
managed-table-name];
文章图片
如何查询 Hive 外部表如何在Hive中创建外部表?要显示存储在表中的所有数据,你将使用
select * from
后跟表名的命令。Hive 提供了广泛的查询命令列表,可让你缩小搜索范围并根据你的喜好对数据进行排序。例如,你可以使用
where
after 命令select * from
指定条件:select * from [
table_name] where [
condition];
Hive 将只输出满足查询中给定条件的行:
文章图片
代替代表“所有数据”的星号字符,你可以使用更具体的确定符。用列名(例如CountryName,来自上面的示例)替换星号将仅显示所选列中的数据。
以下是一些其他有用的查询函数及其语法:
功能 | 语法 |
---|---|
根据多个条件查询一张表 | select * from [table_name] where [condition1] and [condition2];
|
订单表数据 | select [column1_name], [column2_name] from [table_name] order by [column_name];
|
按降序排列表格数据 | select [column1_name], [column2_name] from [table_name] order by [column_name] desc;
|
显示行数 | select count(*) from [table_name];
|
drop table [
table_name];
输出将确认操作成功:
文章图片
2. 查询dropped table会报错:
文章图片
但是,外部表中的数据保留在系统中,可以通过在同一位置创建另一个外部表来检索。
Hive创建外部表教程结论【如何在Hive中创建外部表(如何使用外部表?)】如何在Hive中创建外部表?阅读本教程后,你应该对 Hive 中外部表的用途以及它们的创建、查询和删除的语法有一个大致的了解。
推荐阅读
- Fail2Ban安装和设置指南(Ubuntu、CentOS、Fedora 和 Debian)
- 如何在Bash中检查文件或目录是否存在(代码示例)
- 22个用于编程和编码的最佳Linux文本编辑器合集
- 如何在Ubuntu 18.04上安装TensorFlow GPU(分步指南)
- WIN10专业版激活工具图文图文详细教程
- win10变回win7图文图文详细教程
- 最新通用版win10激活密钥分享自制步骤
- win10 64位 产品密钥分享自制步骤
- windows10专业版激活密钥分享自制步骤