大数据面试题-Hive

1、udf,udaf,udtf的区别?

Hive中有三种UDF:

    1、用户定义函数(user-defined function)UDF;

    2、用户定义聚集函数(user-defined aggregate function,UDAF);

    3、用户定义表生成函数(user-defined table-generating function,UDTF)。

UDF操作作用于单个数据行,并且产生一个数据行作为输出。大多数函数都属于这一类(比如数学函数和字符串函数)。

UDAF 接受多个输入数据行,并产生一个输出数据行。像COUNT和MAX这样的函数就是聚集函数。

UDTF 操作作用于单个数据行,并且产生多个数据行-------一个表作为输出。

简单来说:

UDF:返回对应值,一对一   | UDAF:返回聚类值,多对一 | UDTF:返回拆分值,一对多

 

2、请写出你在工作中自定义过的udf函数,简述定义步骤

步骤:

1.extends UDF,实现evaluate()

2.add JAR /home/hadoop/hivejar/udf.jar;

3.create temporary function tolowercase as 'com.ghgj.hive.udf.ToLowerCase';

4.使用

5.drop temporary function tolowercase;

 

3、Hive 内部表和外部表的区别?

创建外部表多了external关键字说明以及location path.

Hive中表与外部表的区别:

1、在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的!而表则不一样;

2、在删除表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!

 

4、Hive 分区表与分桶表区别

分区在HDFS上的表现形式是一个目录, 分桶是一个单独的文件

分区:  细化数据管理,直接读对应目录,缩小mapreduce程序要扫描的数据量

分桶:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值