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”令等。同时,外部表也可以用于各种数据分析场景,例如计算销售总额和平均销售额等。

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

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

相关文章

  • IIS7 全新管理工具AppCmd.exe的命令使用实例分享

    IIS7 全新管理工具AppCmd.exe的命令使用实例分享 前言 IIS 是 Microsoft 发布的一款基于 Windows 服务器操作系统的 Web 服务器应用程序,它能够提供基于 HTTP、HTTPS、FTP、SMTP、WebDAV 等协议的 Web 访问和支撑网站开发。为此,Microsoft 在 IIS7 中推出了全新管理工具 AppCmd.e…

    other 2023年6月25日
    00
  • Win8系统笔记本初始化开机显示start pxe over ipv4

    首先,”start pxe over ipv4″的意思是启动通过局域网传输的系统安装(即PXE(Preboot eXecution Environment)),需要连接网络来完成初始化安装。针对这种情况,我们可以尝试以下几个方法: 方法一:调整启动项顺序 有可能笔记本启动项顺序设置不正确,我们可以进入BIOS设置,调整启动项顺序,将硬盘启动位置排在PXE启动…

    other 2023年6月20日
    00
  • js变量声明var使用与不使用的区别详解

    JS变量声明var使用与不使用的区别详解 在JavaScript中,变量声明是一种定义变量的方式。var是JavaScript中最早引入的变量声明关键字之一。在ES6之前,var是唯一的变量声明关键字。然而,ES6引入了let和const关键字,它们提供了更好的变量声明和作用域控制。 使用var声明变量的特点 函数作用域:使用var声明的变量具有函数作用域。…

    other 2023年7月29日
    00
  • 推荐WEB开发者最佳HTML5和CSS3代码生成器

    当今,HTML5和CSS3已经成为了现代WEB开发中不可或缺的基本技术。为了提高开发效率和代码质量,我们可以使用一些HTML5和CSS3代码生成器。以下是推荐WEB开发者最佳HTML5和CSS3代码生成器的完整攻略。 HTML5代码生成器 1. HTML5模板生成器 HTML5模板生成器可以帮助我们快速生成HTML5文档的基本结构。它可以自动生成HTML5的…

    other 2023年6月26日
    00
  • VNC远程控制软件怎么用?VNC客户端+服务器端安装及配置图文详细教程(附下载)

    详细讲解“VNC远程控制软件怎么用?”如下所述: 1. 简介 VNC(Virtual Network Computing)是一种远程桌面控制技术,它通过网络将一台机器的桌面图像传输到另一台机器上,使得用户可以在另一台机器上对该机器进行完全控制。 2. VNC安装与配置 2.1 VNC服务器端的安装与配置 VNC服务器端常用的有 TightVNC、RealVN…

    other 2023年6月25日
    00
  • EntityWrapper如何在and条件中嵌套or语句

    EntityWrapper如何在and条件中嵌套or语句的完整攻略 EntityWrapper是一个用于构建SQL查询条件的Java库。它提供了一种简洁而灵活的方式来构建复杂的查询条件,包括在and条件中嵌套or语句。下面是一个详细的攻略,说明如何使用EntityWrapper实现这一目标。 步骤1:导入依赖 首先,确保你的项目中已经导入了EntityWra…

    other 2023年7月28日
    00
  • 易语言数据库操作之“取字段名”命令详解

    易语言数据库操作之“取字段名”命令详解 在易语言中,我们可以使用“取字段名”命令对数据库中的表格进行操作。这个命令有很多的应用场景,例如获取表格字段名、获取表格字段数据类型、获取表格字段备注等等。 语法格式 取字段名(表格名, 字段索引, 参数标识) 其中,表格名指的是需要查询的表格名称,字段索引指的是需要查询的表格字段的索引值,参数标识则是可选参数,表示要…

    other 2023年6月25日
    00
  • SpringBoot之QueryDsl嵌套子查询问题

    Spring Boot之QueryDsl嵌套子查询问题攻略 简介 QueryDsl是一个用于构建类型安全的SQL查询的框架,它提供了一种流畅的API来构建查询表达式。在Spring Boot中使用QueryDsl可以简化数据库查询操作。然而,当需要进行嵌套子查询时,可能会遇到一些问题。本攻略将详细介绍如何解决Spring Boot中QueryDsl嵌套子查询…

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