码迷,mamicode.com
首页 > 其他好文 > 详细

HIVE使用基础

时间:2015-10-09 15:28:57      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:hive 基础使用 笔记

查看所有表:   show tables;

查看表结构:   desc 表名

查看表的分区:  show partitions 表名;


查看UDF:

HIVE允许用户使用UDF(user defined function)对数据进行处理。

查看所有UDF:show functions

某个具体UDF说明:describe function UDF名

http://blog.csdn.net/yfkiss/article/details/7885262


常见建表语句:

(这是内部表)

--drop table if exists DWS_SELLER_SHOP_STOCK_D;

create table if not exists BDP_DWS_SELLER_SHOP_STOCK_D(

THE_DT string,

seller_id decimal,

shop_id decimal comment ‘商店ID‘,

auction_stock bigint

)

COMMENT ‘vender subject: stock of shop group by day‘  ----注释

partitioned by(dt string)           ----使用什么分区

row format DELIMITED             -----用户在建表的时候可以自定义 SerDe 或者使用自带的                           ----SerDe。如果没有指定 ROW FORMAT 或者 ROW FORMAT                           ----DELIMITED,将会使用自带的 SerDe。

                          ---SerDe是Serialize/Deserilize的简称,目的是用于序列化和反序列                                                                               -----化。

FIELDS TERMINATED BY ‘\t‘          -----文件使用间隔符

LINES TERMINATED BY ‘\n‘          ------行使用间隔符

STORED AS SEQUENCEFILE;           -----如果文件数据是纯文本,可以使用 STORED AS                               -----TEXTFILE。如果数据需要压缩,使用 STORED AS                             -----SEQUENCE 。

外部表比内部表多了一个  external 关键字

多了一行  location ‘/home/wyp/external‘。


最后归纳一下Hive中表与外部表的区别:
1、在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的!而表则不一样;
2、在删除表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!
那么,应该如何选择使用哪种表呢?在大多数情况没有太多的区别,因此选择只是个人喜好的问题。但是作为一个经验,如果所有处理都需要由Hive完成,那么你应该创建表,否则使用外部表!


UDTF(User-Defined Table-Generating Functions) 

用来解决 输入一行输出多行(On-to-many maping) 的需求。


UDAF(User- Defined Aggregation Funcation)

1Hive查询数据时,有些聚类函数在HQL没有自带,需要用户自定义实现。

2、用户自定义聚合函数: Sum, Average…… n – 1


UDF(user defined function)对数据进行处理



HIVE使用基础

标签:hive 基础使用 笔记

原文地址:http://zlei1990.blog.51cto.com/3191044/1701152

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!