hive 中的hive如何选择分区字段段可以是表中字段吗

今天看啥 热点:
[Hive]Hive分区表新增字段,hive分区表新增字段
一直没有尝试,被分区的概念吓到了,今天尝试了下,很简单
hive (default)& desc pms.test_cross_sale_
path_id string
visit_track_id
visit_product_id
visit_category_id
visit_brand_id
rcmd_track_id
rcmd_product_id bigint
rcmd_category_id
rcmd_brand_id
rcmd_algorithm_id
cart_track_id
cart_track_time string
cart_product_id bigint
cart_category_id
cart_brand_id
path_length int
session_id
end_user_id string
Time taken: 3.159 seconds在上表中新增两个字段platform_id、tpa,类型均为int类型
hive (pms)& alter table pms.test_cross_sale_path add columns(platform_id int, tpa int);
FAILED: ParseException line 1:12 cannot recognize input near 'pms' '.' 'test_cross_sale_path' in alter table statement
这样执行会有问题,数据库名默认不支持,换种写法即可
hive (pms)&
Time taken: 0.012 seconds
hive (pms)& alter table test_cross_sale_path add columns(platform_id int, tpa int);
Time taken: 0.012 seconds新增的字段将加到该表的最后,分区字段之前,并且在以前的分区中这两个字段都为NULL
hive (default)& desc pms.test_cross_sale_
col_name data_type comment
path_id string
visit_track_id string
visit_product_id bigint
visit_category_id bigint
visit_brand_id bigint
rcmd_track_id string
rcmd_product_id bigint
rcmd_category_id bigint
rcmd_brand_id bigint
rcmd_algorithm_id bigint
cart_track_id string
cart_track_time string
cart_product_id bigint
cart_category_id bigint
cart_brand_id bigint
path_type int
path_length int
path_list string
session_id string
gu_id string
end_user_id string
platform_id int
Time taken: 3.159 seconds
暂无相关文章
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
云计算最近更新Hive 中内部表与外部表的区别与创建方法
Hive 中内部表与外部表的区别与创建方法
[摘要:URL: http://blog.csdn.net/wisgood/article/details/ 先来讲下Hive中内部表取内部表的差别: Hive 建立内部表时,会将数据挪动到数据堆栈指背的途径;若建立内部表,仅纪录数据地点的途径]
URL: &http://blog.csdn.net/wisgood/article/details/
先来说下Hive中内部表与外部表的区别:&
Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,&
不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,&
而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。&
需要注意的是传统数据库对表数据验证是 schema on write(写时模式),而 Hive 在load时是不检查数据是否&
符合schema的,hive 遵循的是 schema on read(读时模式),只有在读的时候hive才检查、解析具体的&
数据字段、schema。&
读时模式的优势是load data 非常迅速,因为它不需要读取数据进行解析,仅仅进行文件的复制或者移动。&
写时模式的优势是提升了查询性能,因为预先解析之后可以对列建立索引,并压缩,但这样也会花费要多的加载时间。&
下面来看下 Hive 如何创建内部表:&
create&table&test(userid string);
LOAD&DATA INPATH&'/tmp/result/'&INTO&TABLE&test
partition(ptDate='');
这个很简单,不多说了,下面看下外部表:&
hadoop fs -ls /tmp/result/
Found 2 items
create&EXTERNAL&table&IF&NOT&EXISTS test (userid
string) partitioned&by&(ptDate string)
&ROW FORMAT DELIMITED FIELDS TERMINATED&BY&'t';
alter&table&test&add&partition (ptDate='')
location&'/tmp/result/';
注意:location后面跟的是目录,不是文件,hive会把整个目录下的文件都加载到表中:
create&EXTERNAL&table&IF&NOT&EXISTS userInfo
&(id&int,sex string, age&int,&name&string,
email string,sd string, ed string)&
&ROW FORMAT DELIMITED FIELDS TERMINATED&BY&'t'&location&'/hive/dw';
否则,会报错误:
FAILED: Error in metadata: MetaException(message:Got exception:&
org.apache.hadoop.ipc.RemoteException java.io.FileNotFoundException:
&Parent path is not a directory: /hive/dw/record_.txt
最后提下还有一种方式是建表的时候就指定外部表的数据源路径,
但这样的坏处是只能加载一个数据源了:
CREATE EXTERNAL TABLE sunwg_test09(id INT, name string)&
ROW FORMAT DELIMITED&
FIELDS TERMINATED BY ‘t’&
LOCATION ‘/sunwg/test08′;&
上面的语句创建了一张名字为sunwg_test09的外表,该表有id和name两个字段,&
字段的分割符为tab,文件的数据文件夹为/sunwg/test08&
select * from sunwg_test09;&
可以查询到sunwg_test09中的数据。&
在当前用户hive的根目录下找不到sunwg_test09文件夹。&
此时hive将该表的数据文件信息保存到metadata数据库中。&
mysql& select * from TBLS where TBL_NAME=’sunwg_test09′;&
可以看到该表的类型为EXTERNAL_TABLE。&
mysql& select * from SDS where SD_ID=TBL_ID;&
在表SDS中记录了表sunwg_test09的数据文件路径为hdfs://hadoop00:9000/hjl/test08。&
# hjl为hive的数据库名&
实际上外表不光可以指定hdfs的目录,本地的目录也是可以的。&
CREATE EXTERNAL TABLE test10(id INT, name string)&
ROW FORMAT DELIMITED&
FIELDS TERMINATED BY ‘t’&
LOCATION ‘file:////home/hjl/sunwg/’;
推荐阅读:
hive中partition如何使用
http://p-/blog/1156408
用正则表达式匹配w3c日志,导入hive
/blog/1720491
hive中的外表EXTERNAL TABLE
http://www.oratea.net/?p=489
HIVE 数据定义 DDL
/article-iquicksandi-8522691.html
感谢关注 Ithao123Hive频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
IThao123周刊hive 添加 分区 问题
[问题点数:40分]
hive 添加 分区 问题
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 hive增加分区字段 的文章

 

随机推荐