首页 > 快手数据算法研发工程师一面面试记录
头像
6833630
编辑于 2020-08-17 20:17
+ 关注

快手数据算法研发工程师一面面试记录

之所以叫做面试记录是因为我的面试内容和其他很多同学的面试内容不大一样。

首先是简单介绍一下自己。。。。。。

然后就是就自己实习项目中的重点和难点进行阐述——实际上我觉得我实习项目确实没什么难点

然后就是先问了一些大数据工具方面的问题

FLink是如何解决乱序问题的?——其实这个我不会,就说了一点自己知道的
其实我说的就是flink会通过设置一个等待我延迟数据的时间大小,这样最大限度保持数据计算精准,但是那个名词我忘记了,
查了查,应该是watermark,水位线,

前文讲到了事件时间,这个真实发生的时间是我们业务在实时处理程序中非常关心的。在一个理想的情况下,事件时间处理将产生完全一致和确定的结果,无论事件何时到达或其排序。但是在现实中,消息不在是按照顺序发送,产生了乱序,这时候该怎么处理?
Watermark是Apache Flink为了处理EventTime 窗口计算提出的一种机制,本质上也是一种时间戳。watermark是用于处理乱序事件或延迟数据的,这通常用watermark机制结合window来实现(Watermarks用来触发window窗口计算)。
请在这里输入引用内容
比如对于late element,我们不能无限期的等下去,必须要有个机制来保证一个特定的时间后,必须触发window去进行计算了。这个特别的机制,就是watermark。 可以把Watermark看作是一种告诉Flink一个消息延迟多少的方式。定义了什么时候不再等待更早的数据。
https://www.cnblogs.com/rossiXYZ/p/12286407.html

然后又聊到了我做的一个和大数据沾边的一个项目,然后问我什么是数据湖?

数据湖是一种在系统或存储库中以自然格式存储数据的方法,它有助于以各种模式和结构形式配置数据,通常是对象块或文件。数据湖的主要思想是对企业中的所有数据进行统一存储,从原始数据(源系统数据的精确副本)转换为用于报告、可视化、分析和机器学习等各种任务的目标数据。数据湖中的数据包括结构化数据(关系数据库数据),半结构化数据(CSV、XML、JSON等),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像、音频、视频),从而形成一个容纳所有形式数据的集中式数据存储。
数据湖从本质上来讲,是一种企业数据架构方法,物理实现上则是一个数据存储平台,用来集中化存储企业内海量的、多来源,多种类的数据,并支持对数据进行快速加工和分析。从实现方式来看,目前Hadoop是最常用的部署数据湖的技术,但并不意味着数据湖就是指Hadoop集群。为了应对不同业务需求的特点,MPP数据库+Hadoop集群+传统数据仓库这种“混搭”架构的数据湖也越来越多出现在企业信息化建设规划中。

然后又问我数据湖是一种新的架构方案还是以前的改进(我也记不清楚了)

问了一部分我是如何做异常检测方面的工作
1、背景、做的效果怎么样?
其实我讲了两个异常检测的项目,没有深问,大都是我自己讲了讲

然后又问了我关于一个大数据计算项目的难点

然后这就40分钟过去了

然后接下来开始正常的操作环节
1、笔试题——没有LRU,也没有其他什么太难的题目,而是一个我觉得简直简单的离谱的题目

排序数据中查找元素第一个位置和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值,返回 [-1, -1]。
示例 1:
输入: nums = [5,7,7,8,,8,8,8,8,10], target = 8
输出: [3,4]
示例 2:
输入: nums = [5,7,7,8,8,10], target = 6
输出: [-1,-1]

2、sql题

1、统计每天每个直播间的访客数、每天最大访客数的直播间
2、查找至少连续观看3天的用户ID 及出现直播间
table
LiveID UserID Date
1 1 20200601
1 2 20200601
1 3 20200601
1 1 20200602
1 1 20200603
1 2 20200603
1 2 20200604
2 4 20200601

这个sql第三问确实被难到了,因为这个统计方法以前很少用,所以这个我需要学习一下
row_number 使用方法
https://blog.csdn.net/pan_junbiao/article/details/79941162?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

但是对第三个问题,连续观看三天这个
对每个用户id的date进行排序,然后把日期和这个rank进行相减,然后统计这个相减后的数字count数目,如果大于3代表连续三天以上了
https://dotblogs.com.tw/daniel/2018/03/27/180710
不过似乎有点复杂

然后就是反问环节

其实我的通知反问环节就是让面试官给我一些指导和建议,但是实际上我的问题我自己最清楚了,
本来之前做算法,现在想转开发我,但是c++、java又没有相关的项目,但是实际上我投开发岗位比较好,因为总比大数据开发岗位好

目前投递的有后端开发、大数据开发、只有极少数算法,准备面试内容就已经把我搞的焦头烂额了。

也不知道会不会有后续面试,但是有几个出乎我意料的地方
1、没有问基础知识,网络、操作系统一律没问‘
2、简历上有一个spark项目,但是没有问spark相关问题,我本来以为会问spark和hadoop的一些区别了,还有常见的面试题
3、flink倒是问了一些,但是实际上flink我学的反而更浅一些;

无论有没有后续面试,我多非常感谢这次面试。

更多模拟面试

全部评论

(3) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐