面试公司:字节跳动
面试岗位:大数据开发
一面题
1、exector 分为几种内存?原理都是什么
2、堆外内存不会被gc回收的,都是用来作什么的
3、flatmap和mapPartition的区别?
4、partition分为hashpartition和rangepartition?各自的实现原理
5、sqoop怎么实现增量导入的?
6、场景模拟:sql实现行转列和 列转行?spark core怎么实现?
7、group by的 数据倾斜问题怎么解决?
8、会问到 hashmap 的相关问题
9、找出两个数组中和为K的元素,两个for循环嵌套实现?时间复杂度为多少更优化的方案?map 实现?空间复杂度多少?
10、二叉树实现 左右子节点的交换,代码落地!
11、还有项目中的相关的问题,注重的解决问题的思路和方法!
12、当然算法也问到了,实现思路说一下就行了,逻辑回归,决策树等
13、 sql就是考察的开窗和相关的优化,尤其是shuffle要尽量少,stage尽量优化为一个!
二面题
1、map、reduce的个数是有什么决定的?
2、A 表:userid session,B表:userid order
求 userid count(session),count(order),尽量优化
3、NameNode 和 Secondary NameNode 的区