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

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

python dict转换成json格式的实现

《pythondict转换成json格式的实现》本文主要介绍了pythondict转换成json格式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 一开始你变成字典格式data = [ { 'a' : 1, 'b' : 2, 'c编程' : 3,

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i