Hive SQL之表与建表

article/2025/10/4 2:08:17

Hive数据模型总览

       用户通过数据库访问Hive后,首先选择哪个数据库,然后在库的下面选择的是一张张表,表是管理数据的的最基本的所在,在表中的一行行记录,在现实中就是一条条数据,里面有我们的字段字段类型和它的顺序。

表Table

一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。

表包含带有数据的记录(行)。

 建表语法树(基础)

 (1)数据类型

Hive数据类型指的是表中列的字符类型,整体分为两类原生数据类型(primitive data type)和复杂数据类型(complex data type)。最常用的数据类型是字符串String和数字类型Int

(2)分隔符指定语法

ROW FORMAT DELIMITED语法用于指定字段之间等相关的分隔符,这样Hive才能正确的读取解析数据。

或者说只有分隔符指定正确,解析数据成功,我们才能在表中看到数据。

 

 LazySimpleSerDe是Hive默认的,包含4种子语法,分别用于指定字段之间、集合元素之间、map映射 kv之间、 换行的分隔符号。

在建表的时候可以根据数据的特点灵活搭配使用。

 Hive建表基础语法练习

1、数据类型

2、分隔符指定

3、默认分隔符

一、数据类型、分隔符练习

文件archer.txt中记录了手游《王者荣耀》射手的相关信息,包括生命、物防、物攻等属性信息,其中 字段之间分隔符为制表符\t,要求在Hive中建表映射成功该文件。

(1/3)数据文件

字段含义:id、name(英雄名称)、hp_max(最大生命)、mp_max(最大法力)、attack_m(最高物攻) 、defense_max(最大物防)、attack_range(攻击范围)、role_main(主要定位)、role_assist(次要定位) 。

分析一下:字段都是基本类型,字段的顺序需要注意一下。

字段之间的分隔符是制表符,需要使用row format语法进行指定。

 使用DataGrip 创建一个工程

首先new一个project

project       Hive-Darcy  在当前窗口打开

 

在桌面上创建一个文件夹 Hive-Darcy后面需要关联本地目录到工程中 

 

 连接成功后显示

创建一个新的文件

 创建完成后需要配置连接到Hive

 更换驱动,点击Dirver (若没有自己的驱动请谨慎删除系统的驱动

 接着会出现下方页面,先点击箭头1,在点击箭头2进行删除

接着点击+号,选择自己的驱动

在自己的目录下找到hive3的驱动点击OK。 

如果箭头1所指的地方未变红,则成功,接着点击箭头2所指的箭头。返回继续配置。 

先修改名称,再写服务地址node1.itcast.cn,再写用户名,然后再点击Test Connection进行测试,如果没有问题就点击Apply,OK就配置好了。

 右键新建一个文件

创建 1.creat文件 

 

 这里注意 笔者在第一次创建的时候,写代码总是报错,后来发现是右上方的配置未配置好

 选择 Apach Hive

输入下列内容

--1,创建一张表 ,将射手结构化数据文件在Hive中映射成功
--表名
--字段  名称  类型  顺序
-- 字段之间的分割符需要指定
create table t_archer
(id int comment "Id编号",name string comment "英雄名称",hp_max int comment"最大生命力",mp_max int comment "最大法力",attack_max int comment"最高物攻",defense_max int comment"最大物防",attack_range string comment"攻击范围",role_main string comment "主要定位",role_assist string comment "次要定位"
)
--指定分割符
row format delimited
fields terminated by "\t";--字段黄之间的分割符就是tab键 制表符

选择会话

 

 选择创建在哪个库下

 选中,接着进行运行。

点开右方的datebase可以查看建表是否成功 。

 

 建表成功后还需要将文件上传到表对应的目录下

  接着使用 select* from  查看表 t_archer

 

至此 将一个结构化的表映射为一张表。


http://chatgpt.dhexx.cn/article/ikA39ysA.shtml

相关文章

SQLite 创建表SQL语句

SQLite 创建表 创表语法 CREATE TABLE [表名称](--主键列不可为空[列1] [类型] PRIMARY KEY NOT NULL,--列可为空[列2] [类型],--列不可为空[列3] [类型] NOT NULL );创表示例 CREATE TABLE User (Id INT PRIMARY KEY NOT NULL,Name Text,Sex INT NOT NULL )在线Sqlite查看器…

SQL创建表为啥不显示

这里新建表 左上角报存 保存完以后点击刷新就会出来刚创建的表格

SQL 创建表的备份

1. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。 SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档; SQL SELECT INTO 语法 您可以把所有的列插入新表: SELECT * INTO new_table_name…

SQL Server创建表

我们要怎么在数据库中创建表呢!首先,表在数据库和模式中唯一命名。每个表包含一个或多个列。 每列都有一个相关的数据类型,用于定义它可以存储的数据类型,例如:数字,字符串和日期。 要创建新表,…

SQL Server 创建表

我们在上一节中完成了数据库的创建,在本节,我们要往这个新的数据库中加入点数据,要想将数据添加到数据库,我们就必须在数据库中添加一个表,接下来来看看具体的操作。 我们的数据库是一个任务跟踪数据库,那…

ORACLE SQL 创建表

1.创建表: 1.1表名和列名: 一定要以字母开头 一定在 1-30 个字符之间 只能包含 A–Z, a–z, 0–9, _, $, 和 # 一定不能和用户定义的其他对象重名 一定不能是Oracle 的保留字 一定要有CREATE TABLE权限 而且需要一定的存储空间 还要指定的&…

利用SQL创建表结构

一、创建图书管理系统,其中涉及到的对象有(图书分类,图书,学生,借书记录) 1、列出关系模式 (1) 书本类别(种类编号,种类名称) (2) 学生(学生编号&#xff0…

SQL创建表

要创建新的表,就要使用create table语句。 1、第一,要指定数据库的名称,必须是数据库有的,如果没有指定,那就默认是当前数据库。(如图下所示是没有指定数据库的) 2、第二,指定表的模…

SQL表的创建

一,创建表 1.使用普通方法创建表 1,进入SQL进行连接 2,在左边会有一个对象资源管理器,右键数据库,在弹出的窗口中选择新建数据库 3,给这个包取个名字,在这个界面可以给这个表选择存储地方&…

SQL语句之表的创建和使用

表 一、表的创建(DDL)1.建表的语法格式创建一个学生表 2.mysql中的数据类型3.删除表 二、在表中插入数据insert(DML)1.insert2.insert插入日期3.date和datetime区别 三、修改(update)DML1.语法格式 四、删除数据(delete)DML1.语法…

SQL 创建数据库,创建表

1.SQL CREATE DATABASE 语法 CREATE DATABASE 库名;创建数据库后,您可以在数据库列表中检查它。 SHOW DATABASES;2.SQL CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表。表由行和列组成,每个表都必须有个表名。 SQL CREATE TABLE 语法 C…

Autojs-识别验证码-超级鹰打码(全网独一份,求个三连不过分吧)

Autojs-识别验证码-超级鹰打码 前言先看效果再放代码封装一下1.识别图片2.报错返分3.查询用户的题分信息4.主函数 超级鹰文档错误码验证码类型(截了几个常用的)1.英文数字2.中文3.纯英文4.纯数字 最后求个三连~ 前言 JavaScript语言的超级鹰打码应该是全…

国内十大无代码平台,无代码app开发平台有哪些?

相信大家都知道,无代码开发就是软件开发者无需通过手工编码就可以达到目标需求的一种软件开发方式,降低了程序员对重复功能代码编写的任务量,使应用软件的开发效率得到了大幅提升,所以就备受欢迎,那么市面上哪些无代码…

html页面自动登录,抓取网页时自动登录和自动输入验证码

集搜客GooSeeker网页抓取软件可以与在线打码平台对接,如果抓取的网站要求输入验证码,那么就把验证码转发给在线打码平台,GooSeeker将打码平台给回的结果自动录入到网页上,完成打码过程。集搜客GooSeeker V5.1.0版本支持如下功能与联众打码平台对接,请用户自行在联众打码平…

测试-小程序打码平台

一、背景 1、小程序不同于H5有线上和线下环境,而是区分开发版、体验版、正式版,并且每个版本都有对应的权限管控 2、平时项目测试过程中,都是基于开发码进行测试和验收的; 3、开发码生成的流程:开发分支代码本地编译打…

php对接打码平台,易语言接入打码平台的方法

易语言作为一个可视化操作的中文编程软件,可以很更利的开发一些营销类的软件,能做自动化工作,这时对于有输入验证码的操作的,就要接入到打码平台了,现在看看易语言怎样接入到打码平台的! 1、对于打码平台&a…

autojs-识别验证码-联众打码

联众官网进不去了 新写了超级鹰打码 需要的可以看看:https://blog.csdn.net/tfnmdmx/article/details/123329446 本篇保姆级教程,包括账号注册,获取点数,上传图片获得结果,结果报错以及返回用户点数函数!…

两阶段(two stage)目标检测原理详解 -- RCNN

目录 一、目标检测的任务 二、什么是“两阶段”呢? 三、两阶段算法原理 (二)候选区域算法 (三)边框回归( Bounding Box Regression ) 1. 非极大值抑制(Non-Maximum Suppressio…

Apriltag定位原理与测试

Apriltag定位原理 二维码的检测工作的思路是提取一块四边形的区域,这个区域具有比周围亮度更低的特点。这个思路的主要优点是尽可能多的检测出所有可能的二维码,但是极有可能出现 false positive,后续的编码可以对野值进行剔除。 图 1 二维…

如何理解海森堡的「不确定性原理」?

维尔纳海森堡(1901-1976),德国物理学家,量子力学创始人之一,“哥本哈根学派”代表性人物。 海森堡提出了著名的“不确定性原理”:一个运动粒子的位置和它的动量不可被同时确定。 我是物理科学…