hive外部表详解以及案例演示

Hive外部表详解以及案例演示

Hive是一个基于Hadoop的数据仓库工具,它提供了类似于SQL的查询语言HiveQL,可以将结化数据映射到Hadoop的分布式文件系统HDFS上。Hive支持部表和外部表,本攻略将详细介绍H外部表的概念、用法和案例演示。

1. 外部表的概念

外部表是指在Hive中定义的表,它的数据存储在HDFS上,但是表的元数据存储在Hive的元数据仓库中。与内部表不同,外部表的数据可以被其他程序或工具访问和修改,而不会影响到Hive中的元数据。外部表的定义语法与内部表相同,只需要在创建表时添加“EXTERNAL”关键字即可。

2. 外部表的用法

外部表的用法与内部表类似,可以使用HiveQL语言来查询和操作外部表。但是,需要注意以下几点:

  • 删除外部表时,只会删除表的元数据,而不会删除HDFS上的数据。
  • 在加载数据时,需要使用“LOAD DATA INPATH”命令来指定数据的路径,而不是使用“INSERT INTO”命令。
  • 在查询数据时需要使用“SELECT * FROM”命令来查询数据,而不是使用“SELECT INTO”命令。

3. 外部表的案例演示

以下是两个使用外部表的案例演示:

案例1:创建外部表并加载数据

假设一个包含学生信息文本文件,文件名为“students.txt”,包含以下内容:

1,John,18
2,Mary,19
3om,20
4,Lucy,18

现在需要将这个文件加载到Hive中,并创建一个外部表来查询和操作这些数据。可以按照以下步骤进行:

  1. 将文件上传到HDFS上
hdfs dfs -put students.txt /user/h/students.txt

在上面的命令中,使用“hdfs dfs -put”命令将文件上传到HDFS上。

  1. 创建外部表
CREATE EXTERNAL TABLE students (
    id INT,
    name STRING,
    age INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION '/user/hive/students.txt';

在上面的命令中,使用“CREATE EXTERNAL TABLE”命令来创建外部表,“ROW FORMAT DELIMITED”选项来指定行格式,“FIELDS TERMINATED BY”选项来指定字段分隔符,“LINES TERMINATED BY”选项来指定行分隔符,“LOCATION”选项来指定数据的路径。

  1. 查询
SELECT * FROM students;

在上面的命令中,使用“SELECT * FROM”命令来查询数据。

案例2:使用外部表进行数据分析

假设有一个包含销售数据的文本文件,文件名为“sales.txt”,包含以下内容:

2019--01,100
2019-01-02,200
2019-01-03,300
201901-04,400
2019-01-05,500

现在需要使用Hive来分析这些销售数据,并计算出每天的销售总额和平均销售额。可以按照以下步进行:

  1. 将文件上传到HDFS上
hdfs dfs -put sales.txt /user/hive/sales.txt

在上面的命令中,使用“hdfs dfs -put”命令将文件上传到HDFS上。

  1. 创建外部表
CREATE EXTERNAL TABLE sales (
    date STRING,
    amount INT
)
ROW DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION '/user/hive/sales.txt';

在上面的命令中,使用“CREATE EXTERNAL TABLE”命令来创建外部表,“ROW FORMAT DELIMITED”选项来指定行格式,“FIELDS TERMINATED BY”选项来指定字段分隔符,“LINES TERMINATED BY”选项来指定行分隔符,“LOCATION”选项来指定数据的路径。

  1. 计算销售总额和平均销售额
SELECT date, SUM(amount) AS total_sales, AVG(amount) AS avg_sales
FROM sales
GROUP BY date;

在上面的命令中,使用“SELECT”命令来查询数据,并使用“SUM”函数和“AVG”函数来计算销售总额和平均销售额。

总的来说,外部表是Hive中非常重要的一个概念,它可以将Hive与其他程序或工具进行无缝集成,实现更加灵活和效的数据处理和分析。在使用外部表时,需要注意一些细节问题,例如删除表时只删除元数据、加载数据时使用“LOAD DATA INPATH”令等。同时,外部表也可以用于各种数据分析场景,例如计算销售总额和平均销售额等。

阅读剩余 59%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:hive外部表详解以及案例演示 - Python技术站

(0)
上一篇 2023年5月8日
下一篇 2023年5月8日

相关文章

  • android递归压缩上传多张图片到七牛的实例代码

    针对这个话题,我们来一步步详细讲解下面的内容: 什么是递归压缩上传? 递归压缩上传就是将需要上传的多张图片按照递归的方式一张张压缩并上传到云存储服务中。这种方式可以避免手机内存不足的问题,并且可以节省上传时间和流量。 如何使用七牛云存储服务? 首先,要使用七牛云存储服务,我们需要注册账号,创建一个存储空间,并且在Android项目中导入七牛SDK。 depe…

    other 2023年6月27日
    00
  • js下获取子元素的方法

    JS下获取子元素的方法 在JavaScript中操作DOM元素时,常常需要获取元素的子元素。以下是常用的JS方法来获取子元素: children element.children 方法返回一个包含任何元素子组件的HTMLCollection对象。 const parent = document.getElementById(‘parent’); const …

    其他 2023年3月28日
    00
  • 关于g++和gcc的相同点和区别详解

    关于g++和gcc的相同点和区别详解 相同点 g++和gcc都是GNU Compiler Collection的组成部分,是一套集成了多种编程语言的编译器。 g++和gcc都支持多种CPU架构,包括x86,ARM和PowerPC等。 g++和gcc都可以编译多种编程语言,包括C,C++,Objective-C,Fortran等。 区别 g++与gcc最大的区…

    other 2023年6月26日
    00
  • Python跨文件全局变量的使用技巧

    Python跨文件全局变量的使用技巧 在Python中,如果我们想要在多个文件中共享全局变量,有几种技巧可以实现这个目标。下面将详细介绍这些技巧,并提供两个示例说明。 1. 使用模块 一个常见的方法是使用模块来共享全局变量。我们可以将全局变量定义在一个模块中,并在其他文件中导入该模块来访问这些变量。 首先,我们创建一个名为globals.py的模块文件,并在…

    other 2023年7月28日
    00
  • Java后台防止客户端重复请求、提交表单实现原理

    下面我会详细讲解“Java后台防止客户端重复请求、提交表单实现原理”的完整攻略。 什么是防止重复请求 在web开发中,防止客户端重复请求、提交表单是一项常见的安全需求。重复请求会导致服务器接收到相同的请求两次或更多次,浪费服务器资源,甚至会导致数据异常,影响系统正常运行。为了防止这种情况的发生,我们需要在后台服务器端实现一些机制,即防止重复请求机制。 防止重…

    other 2023年6月25日
    00
  • 详解C语言初阶之函数

    详解C语言初阶之函数 什么是函数? 在C语言中,函数是一段可执行的代码块,它可以接收输入参数,进行一定的运算处理,最后返回输出结果。函数可以重复利用,提高代码的复用性,也可以使程序结构更加清晰,易于维护。 函数使用的格式如下: 返回值类型 函数名(参数列表) { 函数体 return 返回值; } 其中,返回值类型指定了函数返回值的类型,函数名指定了函数的名…

    other 2023年6月27日
    00
  • 图解Java ReentrantLock公平锁和非公平锁的实现

    图解Java ReentrantLock公平锁和非公平锁的实现攻略 什么是ReentrantLock ReentrantLock是一个可重入锁,也称为互斥锁,它比Java原生的synchronized更加灵活,支持公平锁和非公平锁,并且可以通过tryLock方法尝试获取锁,给予更好的控制和扩展。 公平锁和非公平锁 公平锁和非公平锁都是指ReentrantLo…

    other 2023年6月26日
    00
  • js 延迟加载 改变JS的位置加快网页加载速度

    JS 延迟加载是优化网站性能的一种方式。它允许我们选择何时启动 JS 脚本,以加快页面加载速度。下面是这个过程的完整攻略: 1. 正确引用 JS 文件 在 HTML 页面中,一定要使用正确的代码来引用 JS 文件。你需要确保代码中的文件路径正确。比如,如果 JS 文件在根目录下的 js 文件夹内,你需要像这样写: <script src="j…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部