大数据开发岗大厂面试30天冲刺 - 日积月累,每日五题【Day02】——Hive2

前言

大家好,我是manor。相信大家和我一样,都有一个大厂梦,作为一名大数据专业学生、爱好者,深知面试重要性,很多学生已经进入暑假模式,暑假也不能懈怠,正值金九银十的秋招
接下来我准备用30天时间,基于大数据开发岗面试中的高频面试题,以每日5题的形式,带你过一遍热门面试题及恰如其分的解答。

相信只要一路走来,日积月累,我们终会在最高处见。
以古人的话共勉:道阻且长,行则将至;行而不辍,未来可期!

在这里插入图片描述

本栏目大数据开发岗高频面试题主要出自大数据技术专栏的各个小专栏,由于个别笔记上传太早,排版杂乱,后面会进行原文美化、增加。

面试题 01 窗口函数(开窗函数)

OVER():用于指定分析函数工作时的数据窗口大小,这个数据窗口大小可能会随着行的变而变化;
CURRENT ROW:当前行;
n PRECEDING:往前n行数据;
n FOLLOWING:往后n行数据;
UNBOUNDED:起点,UNBOUNDED PRECEDING 表示从前面的起点
UNBOUNDED FOLLOWING表示到后面的终点;
LAG(col,n,default_val):往前第n行数据;
LEAD(col,n, default_val):往后第n行数据;
NTILE(n):把有序分区中的行分发到指定数据的组中,各个组有编号,编号从1开始,对于每一行,NTILE返回此行所属的组的编号。这个函数需要注意:n必须为int类型。

面试题 02 行转列函数

CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串。
例如:concat( aa, ‘:’, bb) 就相当于把aa列和bb列用冒号连接起来了,aa:bb。
CONCAT_WS(separator, str1, str2,…):CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。(然而会忽略所有的 NULL)。
COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。

面试题03、列转行函数

EXPLODE(col):将hive某列中复杂的array或者map结构拆分成多行。
LATERAL VIEW:常和UDTF函数一起使用。
用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias
解释:用于和split, explode等UDTF一 起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。

面试题04、Hive的数据文件存储格式

texfile:默认的存储格式:普通的文本文件,数据不压缩,磁盘的开销比较大,分析开销大。
sequencefile:提供的一种二进制存储格式,可以切割,天生压缩。
rcfile:提供的是一种行列混合存储方式,该方式会把相近的行和列数据放在一块儿,存储比较耗时,查询效率高,也天生压缩。
orc:是rcfile的一种优化存储。
parquet:自定义输入输出格式

面试题05、Hive中常用的系统函数有哪些

date_add(str,n)、date_sub(str,n) 加减时间
next_day(to_date(str),’MO’) 周指标相关,获取str下周一日期
date_format(str,’yyyy’) 根据格式整理日期
last_day(to_date(str)) 求当月最后一天日期
collect_set(col) 收集数据返回一个以逗号分割的字符串数组 get_json_object(jsondata,object) 解析json,使用object获取对象值 NVL(str,replace) 空字段赋值,str为空返回replace值;两个都为空则返回null

总结

今天我们复习了面试中常考的Hive相关的五个问题,你做到心中有数了么?
其实做这个专栏我也有私心,就是希望借助每天写一篇面试题,督促自己学习,以免在吹水群甚至都没有谈资!
对了,如果你的朋友也在准备面试,请将这个系列扔给他,

这几天由于参加学校活动,到上海参观互联网企业,一直没时间写,让大家久等了在这里说声抱歉。。。
好了,今天就到这里,学废了的同学,记得在评论区留言:打卡。给同学们以激励。
在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIMaynor

觉得有用,要个免费的三连可有?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值