【Hive】Hive 创建表

article/2025/10/1 5:25:41

学习笔记—Hive创建表

1. Hive语句的特点

HQL 语言大小写不敏感,但内容分大小写(where ,if/ case when,如:数据表内容某人名叫Tom,则条件后不能写tom,HDFS 路径名(NameNode)分大小写) ;

HQL 可以写在一行或者多行, 关键字不能被缩写也不能分行,同 SQL;

各子句一般要分行写, 使用缩进提高语句的可读性,为了美化,同SQL;

-- 为注释符号 ;

Hive 不存储数据,他是表到HDFS文件的映射关系(语句)

2. DDL

2.1 Hive的数据库DDL

Hive的数据库中相关的DDL语句与SQL基本一致,常见如下:

创建数据库:create database [if not exists] 数据库名

查看数据库:show databases

删除数据库:drop database [if exists] 数据库名

使用数据库:use 数据库名

2.2 Hive的数据表DDL

创建表:creat table 表名(colname, data_type,

​ colname, data_type, ​ .....) 或

create table 表名 like 已有表表名;

create table like select 语句;

查看表:show tables

查看表结构:desc 表名

查看建表语句:show create table 表名

删除表:drop table [if exists] 表名

修改表名:alter table 表名 rename to 新表名

字段编辑:添加字段:alter table 表名 add column [colname data_type, colname 2 data_type2 ....]

​ 修改字段名/类型 alter table 表名 change 旧字段名 新字段名 新字段类型

分区编辑:添加分区: alter table 表名 add partition (分区字段='分区字段数值')

​ 查看分区:show partitions 表名

​ 删除分区:alter table 表名 drop partition (分区字段='分区字段数值')

注:MySQL也可以分区,但一般不用,用数仓解决分区(后面内容详细解释数仓的分区);

2. 数据类型

2.1 类型

与MySQL数据库类型差异点:复合类字段

Array:同类型字段(data_type),都是数字类或字符串类型;

Map:组合类 (如:张三 北京;张三 18),可以组合不同类型字段

struct:结构体

alt
2.2 数据类型转换

cast(列名 as 要转换的类型) ;

convert(数据类型,列名);

如果将浮点型的数据转换成int类型的,内部操作是通过round()或者floor()函数来实现的,而不是通过cast实现;

对于BINARY类型的数据,只能将BINARY类型的数据转换成STRING类型。如果你确信BINARY类型 数据是一个数字类型(a number),这时候你可以利用嵌套的cast操作;

对于Date类型的数据,只能在Date、Timestamp以及String之间进行转换。

3. 分隔符

alt

4. 示例解释

-- 创建表create table emp(userid bigint,emp_name array<string>, -- 数组类型:外国人的名字包含 名 和 姓emp_date map<string,date>, -- 将入职日期和出生日期组合,入职日期和出生日期字段类型(key_value)为string,-- 其值本身(value_type)类型为dateother_info struct<deparment:string,gender:string>row format delimited -- 指定分隔符fields terminated by '\t' -- 字段分隔为\t,表示一个字段为一个制表位collection terminated by ',' -- 元素分隔符:将array/struct中各个字段用,隔开;将map中的key_value用,隔开map keys terminated by ':'   -- 将map类型的key和value用:隔开-- 三类分隔符指令都存在时,顺序不能错

表结果:

10011 为userid,字段类型bigint;

Mary Sluis为字段名和姓,用array组合,用字段用,隔开;

第三列为map组合,birthdate和from_date都是key_value, 为string字段,key_value 被,分隔;后面的日期分别为其值,值类型(value_type)为date,被: 分隔;

第四列为其他信息,字段被, 分隔;

alt
alt

本文由 mdnice 多平台发布


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

相关文章

hive建表语句

目录 一、建表语句1、创建内部表2、创建外部表3、建表高阶语句 CTAS 和 WITH4、向临时表中插入原表中的数据5、创建分区表 一、建表语句 1、创建内部表 建表&#xff1a; CREATE TABLE phone_info(id int,name String,storage String,price double) ROW FORMAT DELIMITED //…

c语言void* arg,void * arg什么意思

许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据…

什么是arguments

什么是arguments 形参&#xff1a;函数定义的参数实参&#xff1a;函数调用时实际传递的参数。参数匹配是从左向右进行匹配。如果实参个数少于形参&#xff0c;后面的参数对应赋值undefined。实参的个数如果多于形参的个数&#xff0c;可以通过arguments访问。【案例】模拟封装…

python函数参数*arg和**args的用法

import numpy as np """ 做饭函数&#xff0c;表示午饭有什么,foods表示一个元组 """ def make_meals(*foods):for item in foods:print(今天午饭有,item)def dictionary(**dic):for key,value in dic.items():print(英文名(key) , key , &…

什么是:arguments

在调用函数时&#xff0c;浏览器每次都会传递进两个隐含的参数: 1.函数的上下文对象this 2.封装实参的对象arguments 什么是&#xff1a;arguments 1.arguments是一个类数组对象,它也可以通过索引来操作数据&#xff0c;也可以获取长度 在调用函数时&#xff0c;我们所传递的实…

python中的arg,*args,args,**kwargs,kwargs的关系和区别

arg就是指一个参数 def func(arg):print(arg)func(2) *args 是用来将参数打包成元组给函数调用的&#xff0c;args即是传给函数的参数所构成的元组 def func(arg, *args):print(arg, *args)func(1, 2, 3, 4, 5, 6, 7)**kwargs是用来将关键字参数打包成字典给函数调用的&#…

Python *arg与**kwarg区别

*arg 与 **kwargs介绍 args 是 arguments 的缩写&#xff0c;表示位置参数&#xff1b;kwargs 是 keyword arguments 的缩写&#xff0c;表示关键字参数。这其实就是 Python 中可变参数的两种形式&#xff0c;并且*args 必须放在 **kwargs的前面&#xff0c;因为位置参数在关键…

argc,argv是什么

来源&#xff1a;微信公众号「编程学习基地」 文章目录 argc&#xff0c;argv是什么如何解析程序参数“选项”是什么&#xff1f;"选项字符串"是什么解析参数 argc&#xff0c;argv是什么 如果你是一个 Linux 开发者&#xff0c;那么你一定需要给应用程序传递参数。…

数学符号arg的含义

argument of the maximum/minimum arg max f(x): 当f(x)取最大值时&#xff0c;x的取值 arg min f(x)&#xff1a;当f(x)取最小值时&#xff0c;x的取值 表示使目标函数取最小值时的变量值 From Wikipedia In mathematics, arg max (or argmax) stands for the argument of…

arg和*argv[]是什么?

我们知道main函数的标准原型应该是int main(int argc, char *argv[]);。argc是命令行参数的个数&#xff0c;argv是一个指向指针的指针。那为什么要写成char *argv[]而不写成char argv呢&#xff1f;这样写给表示argv不是指向单个指针&#xff0c;而是指向一个指针数组的首元素…

数学符号arg含义

argument of the maximum/minimum arg max f(x): 当f(x)取最大值时&#xff0c;x的取值 arg min f(x)&#xff1a;当f(x)取最小值时&#xff0c;x的取值 表示使目标函数取最小值时的变量值 From Wikipedia In mathematics, arg max (or argmax) stands for the argument of…

MLT解读

简介 在很多方法都在检测上做文章的时候&#xff0c;能看到MLT这样一篇在Public赛道做研究并取得相当好的效果的文章是很难得的&#xff0c;就像论文的标题一样&#xff0c;它直面了MOT目前针对二维图像的一个痛点&#xff0c;那就是遮挡问题尤其是密集人群场景下的遮挡问题。…

什么是TLB ?

TLB:Translation Lookaside Buffer. 根据功能可以译为快表&#xff0c;直译可以翻译为旁路转换缓冲&#xff0c;也可以把它理解成页表缓冲。里面存放的是一些页表文件&#xff08;虚拟地址到物理地址的转换表&#xff09;。当处理 器要在主内存寻址时&#xff0c;不是直接在内存…

G i t

Git 1、Git 概述1.1、版本控制工具 2、Git 常用命令★★★★2.1、设置用户签名★★★★2.2、初始化本地库★★★★2.3、查看本地库状态$ git status2.4、添加暂存区$ git add 文件名2.5、提交本地库2.6、修改文件$ vim 文件名2.7、历史版本 3、Git 分支操作3.1、分支的操作&am…

Megatron-LM GPT2

内容 使用原始 Megatron-LM 训练 GPT-2 训练数据设置运行未修改的 Megatron-LM GPT2 模型启用 DeepSpeed 参数解析初始化和训练 初始化使用训练 API 前向传播反向传播更新模型参数损失缩放检查点保存和加载DeepSpeed 激活检查点&#xff08;可选&#xff09;训练脚本使用 GPT-…

代码评审与LGTM

为什么80%的码农都做不了架构师&#xff1f;>>> 关于codereview&#xff0c;https://www.douban.com/note/593670479/ 在Google&#xff0c;系统保证了只有经过Critique评审通过的代码才能被提交进代码仓库Piper。 每个目录都有几个“owners”&#xff0c;通常是相…

lnmt

lnmt 简介 lnmt&#xff1a; 表示的是 linux nginx mysql tomcat 的简称 Apache 为HTML页面服务&#xff0c;而Tomcat实际上运行JSP页面和Servlet&#xff0c;Tomcat实际上运行JSP页面和Servlet&#xff0c;Tomcat处理静态HTML的能力不如Apache服务器 了解更多Tomcat 内容请…

社区出品|LGTM :数据圈内的周度「热点精选」

&#x1f4e2;「LGTM」的意思是指&#xff1a;在我看来不错 (Looks Good to Me)&#xff0c;这是代码审阅者在批准 CL 时说的常用语。ShardingSphere 社区开辟一个全新的内容专栏——「LGTM 专栏」致力为您带来业界最佳新闻&#xff0c;让您在 5 分钟内了解科技&#xff01;另外…

怎么开启远程重启服务器,怎么正确重启服务器

对于从事互联网行业的工作人员来说&#xff0c;远程桌面连接不上是一种很常见的情况&#xff0c;这个时候重启服务器是一种最直接最有效的解决办法&#xff0c;但是重启服务器也是分好几种方法的&#xff0c;下面就随着小编来了解一吧。 服务器连接不上的原因有以下几种&#x…

虚拟机重启服务器命令,虚拟机中重启命令

虚拟机中重启命令 内容精选 换一换 本章节介绍通过执行virsh edit vmx命令编辑虚拟机配置文件的操作方法,其中vmx是虚拟机名称。虚拟机的CPU绑定,是指将VM的vcpu绑定到同一个NUMA节点的物理CPU上。以将虚拟机的4个vcpu分别绑定到0/1/2/3物理核为例,介绍虚拟机CPU绑定的配置方…