作业帮大数据研发一面凉经

一、背景

​ 在 3 月 10 日左右投了作业帮的简历,一直没有回复,以为是简历被刷了,没想到 3 月 24 日 hr 打电话说 3 月 25 日下午面试,我心想投了大数据,肯定 hadoop、hive、spark 这些必定少不了,于是满满复习了一天大数据相关的课程,下面就开始了今天的面试:

二、面试过程

​ 面试官小哥人很好,上来没有让我自我介绍,直接告诉我说今天分为三大块的内容:数据结构基础、数据结构算法及一些题目的想法、以及自己所做的项目。

3.1 基础

1、散列表

​ q:你了解 HashMap 吗,你了解散列表吗?

​ a: 我都说了会一点(其实就是知道 HashMap 和散列表是什么)

​ q: 结果面试官就问我基于我的认识,让我设计一个工业级别的散列表,我会怎么设计?

​ a: 我直接懵了,说了个 key,hashcode,数组。

​ q: 数组?比如说存储 1000 万条数据,数组合适吗?

​ a: 我又说用用链表吧,因为可能没有这么大的连续内存。

​ q: 链表,然后呢?

​ a: 不会了

2、快排

​ q:你知道快排吗?

​ a:应该知道吧。

​ q:快排时间复杂度是多少,怎么推导

​ a:n * log n,推导:。。。。

​ q:最坏的时间复杂度,怎么导致的,为什么?

​ a:忘了随便说了个 n^2,后面感觉就瞎说了

​ q:换一种问法吧,快排的核心思想是什么?

​ a:我提到了划分

​ q:根据我提到的划分,出一个相关的题,对 1000 万个数据排序

​ a:我只说了按批次排序,然后再归并

​ q:如果每个批次有重复怎么办

​ a:我说不会了,请您提示一下吧

​ q:使用 hash 值把数据分区,根据散列平均分,最后就不用去重了(我还是不太懂)
面试官看我什么都不会,放弃问了

3.2 代码

​ q:看你会 spark,你知道的 spark 的 RDD 有哪些?

​ a:(我被问懵了,RDD 怎么还有中呢)嗯。。。嗯。。。嗯。。。了半大天一个字没说出来,后来问了下什么是哪些?

​ q:rdd 的算子有哪些?

​ a:(懵了半大天脑子锈了,一听这个我会,就激动了,开始啰嗦)rdd 的算子首先分为 transform 算子和 action 算子,transform 算子有 map、mappartition…(然后就想不起来了,居然连最简单的 flatMap 也没想起来),action 算子有 reduce、reduceByKey(然后就想不起来了)

​ q:那不让你写 spark 代码了,写个基本代码吧

​ 1、递归求二叉树深度

​ 2、小青蛙跳台阶问题,100 阶(让我用递归,但我用递归超时了,说 100 太多了,会超时,换个数字吧,30、40? 面试官说行,然后就用 30 跑通了)

​ 3、广度优先输出二叉树

​ 4、找到字符串中包含的子串

​ 如: axdcfadcfcfa

​ cfa

​ 我当时懵了,没写出来,后来想到双指针直接解决问题

3.3 项目

​ 让我介绍一下我用 spark 的项目吧,我简单说了一下,因为那就是个大数据作业,面试官说你这项目大公司根本看不上,还是得注重基础

三、反问环节

​ q:我们作为学大数据的学生,是大数据的框架更重要呢,还是基础更重要呢?

​ a:看你想进什么公司吧,大公司最看重基础了,像数据结构、网络、操作系统、数据库这些都要求很高,大数据框架的了解是加分项。

​ q:我想问一下叫我今天表现怎么样呢?这时第一次面试(笑)?

​ a:coding 还行,但是理论不行,加油吧!

四、总结

​ 1、整个面试过程体验非常好,其实面试没有自己之前想的那么吓人;

​ 2、在面试的时候说话不要啰里啰唆,问什么答什么;

​ 3、基础很重要!!!!!!!!!一定要好好复习基础知识,大数据框架没那么重要。

发布了42 篇原创文章 · 获赞 3 · 访问量 2048

猜你喜欢

转载自blog.csdn.net/stable_zl/article/details/105101186