hive创建表格,简单创建及复杂创建(指定分隔符,存储格式、分区等)

本文主要是介绍hive创建表格,简单创建及复杂创建(指定分隔符,存储格式、分区等),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、hive表格简单创建
create table test(id int,name string,tel string)
然后show tables 就可以查看到已创建的表格了
2、指定分隔符存储格式
create table test(id int, name string ,tel string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'LINES TERMINATED BY '\n'STORED AS TEXTFILE;
其中,FIELDS TERMINATED BY '\t' 是指定字段分隔符也可用用其他符号如“,”,“|”等等,LINES TERMINATED BY '\n'是指定行分隔符(一般不写,默认是换行符)
3、指定存储格式
create table test(id int, name string ,tel string)
STORED AS TEXTFILE;

上面语句就是创建文本格式的表格,一般如果集群的hdfs没有设置文件格式,hive表格默认的便是txt文本格式的,可通过命令
Hadoop fs -cat /表格目录/*   (*或者文件名)查看到文件的内容。hive表格也可以设置其他格式,STORED AS SEQUENCEFILE 设置为sqquencefile格式;STORED AS RCFILE 设置为rcfile格式;要根据需求不同设置不同的存储格式,而且每种存储格式的优势是不相同的,在此不讨论。
4、指定存储目录
create table test(id int,name string,tel string)  
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE 
LOCATION '/data/test'; 

上面语句中LOCATION '/data/test' 便是指定了表格在hdfs存储的目录,建表完成可在/data/下看到已创建test目录,指定目录一般在大型集群上比较常用的,因为集群的规模越大,使用者就越多,集群管理者便会对用户做权限管理,权限管理中必定会涉及对hdfs的目录进行管理,这个时候用户可能没有默认warehouse目录的权限了,建表便需要指定表格目录了

5、指定分区
create table test(id int, name string ,tel string) 
partitioned by (age int) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE

partitioned by (age int)语句便是指定age字段为分区字段

create table test(id int, name string ,tel string) 
partitioned by (age int,class string) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE

上面语句指定了age,class两个分区字段,分区其实对应hdfs上的目录结构,如有一个age分区,表格的数据便存储在“表格目录/age”中,两个分区age,class,表格数据便存储在“表格目录/age/class”中;合理的分区在数据量大的表中是必要的,一本可以优化表格数据的查询速度,可可以对数进行简单的分类,一般大数据量的表中必有时间字段的分区

6、建立外部表
create EXTERNAL table test(id int, name string ,tel string) 
partitioned by (age int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;

外部表其实跟内部表格没有太大的区别,多了EXTERNAL关键字,外部表可以映射到其他目录,alter table test add partition (age=17) location '/user/oi/ts/17'; 这样便把ts目录下的数据映射到了test表中,可以查到数据select * from test where test=17; 当然前提是外部目录下的数据格式要与表格的格式一直,如上,17目录下的数据必须是三个字段的,且是逗号分割的,文本文件;外部表格在删除表格的时候,并不会删除数据,外部表格可以建立在已存在的目录或文件上,更加灵活
7、建立桶表 bucket table

create table test(id int,name string)
CLUSTERED BY(id) SORTED BY(name) INTO 32 BUCKETS    
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';
桶是更为细粒度的数据范围划分,它能使一些特定的查询效率更高,
比如对于具有相同的桶划分并且jion的列刚好就是在桶里的连接查询,还有就是示例数据,
对于一个庞大的数据集我们经常需要拿出来一小部分作为样例,然后在样例上验证我们的查询,优化我们的程序。





这篇关于hive创建表格,简单创建及复杂创建(指定分隔符,存储格式、分区等)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015408

相关文章

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【