查看某个分区之前所有的数据_腾讯大数据面试真题汇总
騰訊面試題
學(xué)長(zhǎng)1
1)筆試部分
(1)有一表名t_sh_mtt_netdisk_log,從表名可以看出該表是什么業(yè)務(wù)的,是什么周期粒度的表。
(2)怎么查看表結(jié)構(gòu),表創(chuàng)建語(yǔ)句?怎么查看表有哪些分區(qū)?怎么查看分區(qū)對(duì)應(yīng)hdfs路徑?怎么計(jì)算某個(gè)分區(qū)的數(shù)據(jù)量大小?怎么計(jì)算某個(gè)分區(qū)的文件總數(shù)?
(3)有一hive sql,怎么計(jì)算這個(gè)sql會(huì)產(chǎn)生多少個(gè)map數(shù)?
(4)怎么查看hive有什么自帶函數(shù)?怎么查看函數(shù)的詳細(xì)信息?
(5)Hive支持哪些基本數(shù)據(jù)類(lèi)型?
(6)請(qǐng)指出下面兩個(gè)語(yǔ)句讀取分區(qū)ds數(shù)據(jù)的不同
Select * from t where ds=20150101 and province='gd' or province='ex'
Select x fromt where ds 20150101 and(province='gd' or province='ex')
(7)將字符串"keyl=valuel&key2=value2...keyn=valuen"進(jìn)行分割放到一個(gè)字段里面,可以查出任意一個(gè)keyx對(duì)應(yīng)的valuex值。請(qǐng)寫(xiě)出查詢語(yǔ)句,并計(jì)算總共有多少個(gè)key值。
(8)用一個(gè)字符串比如"alblc"來(lái)測(cè)試某個(gè)函數(shù)比如split(用|分隔符將字符串進(jìn)行分割)的語(yǔ)句
(9)a表和b表內(nèi)連接,a表為小表,只有2000行記錄
select a.*from a Join b on a.key=b.key
可以進(jìn)行怎樣的優(yōu)化
(10)a表left join b表,b表為小衣,可以進(jìn)行怎樣優(yōu)化?
scleet a.*from a left join Join b ona.key=b.key
如果a為小表,可以怎樣優(yōu)化?
(11)請(qǐng)指出下面sql語(yǔ)句的區(qū)別
select a.* from a left Join b on a.key = b.key and a.ds=xxx and b.ds=xxx
sclect a.* from a lef Join b on a.key = b.key and b.ds=xxx
select a.* from a lef Join b on a.key = b.key and b.ds=xxx where a.ds=xxx
Select a.* from a left Join b on a.key = b.key where a.ds=xxx and b.ds=xxx
(12)多表連按的寫(xiě)法:a,.b,c三個(gè)表內(nèi)連接,連接字段都是key,怎樣寫(xiě)連接語(yǔ)句?
(13)兩大表連接,發(fā)生了數(shù)據(jù)傾斜,有幾個(gè)reduce無(wú)法完成,怎么查找發(fā)生數(shù)據(jù)傾斜的原因?應(yīng)該怎樣優(yōu)化?
語(yǔ)句:select t1.*,nvl(t2.x,1) from t1 left join t2 on t1.guid=t2.guid
(14)兩大表連接,發(fā)生了數(shù)據(jù)傾斜。有一個(gè)reduce無(wú)法完成,檢直發(fā)現(xiàn)t1中g(shù)uid="的記錄有很多,其他guid都不重復(fù),這條語(yǔ)句該怎樣優(yōu)化?
語(yǔ)句:select t1.*,nvl(t2.x,1) from t1 left join t2 on t1.guid = t2.guid
(15)如何用hive q!實(shí)現(xiàn)sqL中的exist/in 子句
mysql語(yǔ)句如下:
SEL ECT a* FROM a where a.key in(select dstinct key from b where key like ‘filter%’)
(16)sort by、distribute by、cluster by 和 order by 區(qū)別
注:可參考數(shù)據(jù)工廠的“幫助中心》集群hive》hive使用優(yōu)化》hive使用注意事項(xiàng)”
學(xué)長(zhǎng)2
1)筆試題
用HiveSQL實(shí)現(xiàn)
(1)全量用戶登員日志表t_login_all,字段信息ftime(登錄日期)、openid(登錄帳號(hào))新增用戶登錄日志表t_login_new,字段信息ftime(登錄日期)、openid(登錄帳號(hào))求每天新增用戶次日、7天、30天留存率。
(說(shuō)明:7天留存是指當(dāng)天有登錄且第7天還登錄的用戶)
(2)消息流水表t_chat all,字段信息:
Ftime(日期)、send_user id(發(fā)消息用戶id)、receive.user id(接收消息用戶id)、chat id(消息id)、send.time(發(fā)消息時(shí)間)
用戶登錄流水日志表t_login_all,字段信息:
Ftime(日期)、user_id(用戶id)、login_id(登錄id)、login_loc(登錄區(qū)服)、login_time(登錄時(shí)間)
求:每天有收發(fā)消息用戶最近登錄時(shí)間、登錄區(qū)服,輸出ftime,user_id,login_loc,login_time
用Spark core實(shí)現(xiàn),寫(xiě)Scala腳本
1、reduceByKey()、groupByKey()有什么區(qū)別?
2、DataFrame和RDD有什么區(qū)別?
3、使用累加器,對(duì)數(shù)組Array(1,2,3,4)每個(gè)元素實(shí)現(xiàn)累加操作,最后打印輸出求和結(jié)果。
4、現(xiàn)有文件file.txt,文件格式如下
Order_id,user_id,payment,productid
1、1768,50,155
2、1218,600,211
3、2239,788,242
4、3101,288,599
5、4899,25,230
6、2311,890,981
。。。。。。
求Top10個(gè)payment字段的值
學(xué)長(zhǎng)3
1)技術(shù)部分
(1)我看你上面寫(xiě)了你會(huì)Spark,那你用Spark寫(xiě)一下剛剛那道題的代碼(第6題),不能用Spark SQL
(2)我看你上面有寫(xiě)到熟悉Hive原理和優(yōu)化,你說(shuō)一下怎么優(yōu)化
(3)優(yōu)化有說(shuō)到語(yǔ)句優(yōu)化,然后又說(shuō)回到pv和uv那個(gè)問(wèn)題,假如說(shuō)讓你優(yōu)化你怎么優(yōu)化(我代碼里面有count(distinct id) uv,)
(4)問(wèn)了一些Kafka的,我只記得一點(diǎn)點(diǎn),問(wèn)我數(shù)據(jù)會(huì)不會(huì)重復(fù)消費(fèi),什么情況下會(huì)重復(fù)消費(fèi)
(5)在Hive執(zhí)行語(yǔ)句的時(shí)候如果很慢,什么原因造成
我有提到數(shù)據(jù)傾斜的問(wèn)題,他又問(wèn)怎么解決數(shù)據(jù)傾斜
2)項(xiàng)目部分
(1)讓你挑一個(gè)比較有亮點(diǎn)的項(xiàng)目詳細(xì)說(shuō)
(2)你負(fù)責(zé)了什么,數(shù)倉(cāng)中統(tǒng)計(jì)了哪些指標(biāo),
(3)剛剛聽(tīng)你說(shuō)項(xiàng)目里面有提到分層,如果我要你求每天商品的pv,uv,從ods層到dm層它的具體流向,各層都統(tǒng)計(jì)了什么(后來(lái)讓寫(xiě)求pv,uv的sql語(yǔ)句)
3)場(chǎng)景部分
(1)有一個(gè)分區(qū)表,表名T,字段qq,age,按天分區(qū),讓寫(xiě)出創(chuàng)建表的語(yǔ)句
(2)剛剛的分區(qū)表,求20200221這個(gè)分區(qū)中,年齡第N大的qq號(hào)列表
(3)有一個(gè)表,兩個(gè)字段,分別是qqa和qqb,數(shù)據(jù)如下:
12,34
12,56
12,78
34,56
34,12
找出所有互相關(guān)注的qq對(duì)
4)手寫(xiě)部分
(1)三個(gè)字段,timestamp,user_id,product_id,讓求pv最大的商品,寫(xiě)了之后又叫用Scala代碼寫(xiě)一遍,然后又問(wèn),假如說(shuō)只讓你求pv數(shù)大于100的top3呢,代碼又怎么寫(xiě)
學(xué)長(zhǎng)4
1)技術(shù)部分
(1)你們數(shù)倉(cāng)用什么建模方法,說(shuō)出常見(jiàn)的建模方法?
(2)維度建模有什么好處? 為什么選擇這個(gè)?比如最后業(yè)務(wù)需求要增加一個(gè)維度,我們需要做什么工作?
(3)怎么判斷一個(gè)需求能不能實(shí)現(xiàn),你們的判斷標(biāo)準(zhǔn)是什么?需求變更要做什么
(4)增加一個(gè)維度后發(fā)現(xiàn)查詢的速度變得非常慢,是什么原因?qū)е碌?#xff1f;
(5)你們ADS層的數(shù)據(jù)量每天的數(shù)據(jù)量有多大?ADS層在MySQL中的表是怎么創(chuàng)建的?有什么注意事項(xiàng)?索引怎么創(chuàng)建的?
(6)你知道Spark的寬窄依賴(lài)嗎? 有沒(méi)有把寬依賴(lài)轉(zhuǎn)化為窄依賴(lài)的例子?
(7)Spark參數(shù)調(diào)優(yōu)做了些什么 ?
2)算法部分
(1)一個(gè)list [1,5,5,7,9] 去重,并計(jì)算時(shí)間空間復(fù)雜度
(2)單鏈表的反轉(zhuǎn)
文章來(lái)源:尚硅谷大數(shù)據(jù)培訓(xùn)
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的查看某个分区之前所有的数据_腾讯大数据面试真题汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 水面反光如何拍摄_如何在雨中拍摄,这些技
- 下一篇: 直接插入排序比较次数_程序员必须要会的直