面试复盘 | 斗鱼-数据中台-数据挖掘工程师-一面面经

去年秋招面的,9月份吧大概是。
1、自我介绍
2、两道sql题,比较简单
 有一道题我写的join连接,a表是select,b表是表名,a表和b表体量不同,一个大些,一个小些。面试官问把这两个表交换位置,查询效率还是一样的吗?我当时也不太清楚。

正确答案应该是:小表在前可以提高sql执行效率。

3、rank() 排序的结果是是什么?

和row_number()、dense_rank()的不同

4、决策树原理

5、我有个比赛写的是文本挖掘方面的,面试官就问我:文本分类算法的评估指标中查全率和F1值怎么算

6、实习内容

7、为什么跑那么远去实习?你是哪儿的人?

8、概率题

具体题目记不清了,但对于学了统计知识的人来说不难。

总的来说,斗鱼的面试不会问特别难的问题,也不会问得很深入。数据挖掘工程师的面试内容和我面其他家的数据分析师问的问题是差不多的。一开始我还以为这是很偏技术岗,会问很多算法和数据开发的问题,结果没怎么问。我最后还特地问了面试官你们公司的数据挖掘工程师和数据分析师的工作内容区别是什么,他说其实这两者在斗鱼的工作内容是差不多的,都是偏业务一点。
面试官很随和,即使有的问题我回答不出来他也会说没事的。
还有,我面过斗鱼很多次了,我发现不管是HR还是业务面试官,都会问你是哪儿人,每场面试都会问。



#面试复盘##斗鱼##面试题目#
全部评论
成了吗
点赞 回复 分享
发布于 2022-03-18 00:08

相关推荐

04-27 16:50
已编辑
门头沟学院 Java
1. mysql删除表语句是什么?drop和truncate区别?2. 删除一行数据的sql3. 查询一张表所有的数据的sql4. 查询一张表有多少条数据sql。  count(1)和count(*)区别5. i++和++i区别6. 介绍下重载和重写。  构造方法可以重写重载吗?7. arraylist和linkedlist的区别8.解释一下深拷贝和浅拷贝9. 如果有三个线程,我如何能保证顺序执行.方法1: 使用join()join() 方法可以确保一个线程在另一个线程执行完毕后才开始执行。通过合理地调用 join(),可以实现线程的顺序执行。方法2:使用countdownlatch/semaphore方法3: 使用锁和原子类,wait() + notifyAll()方法4: 使用completablefuture10. 如果有一个 T1 线程,想把 T2 线程加到 T1 里面,怎么实现?方法1. 使用join()Thread t2 = new Thread(() -> {    // T2 线程的执行逻辑    System.out.println("T2 线程正在执行");});Thread t1 = new Thread(() -> {    try {        System.out.println("T1 线程开始执行");                // T1 线程在此处等待 T2 线程执行完成        t2.start();  // 启动 T2 线程        t2.join();    // T1 等待 T2 完成                System.out.println("T2 线程已完成,T1 继续执行");    } catch (InterruptedException e) {        e.printStackTrace();    }});t1.start();方法2. 使用future.get()ExecutorService executor = Executors.newSingleThreadExecutor();Future future = executor.submit(() -> {    // T2 线程的执行逻辑    System.out.println("T2 线程正在执行");});Thread t1 = new Thread(() -> {    try {        System.out.println("T1 线程开始执行");                // T1 线程在此处等待 T2 线程执行完成        future.get();  // 阻塞直到 T2 完成                System.out.println("T2 线程已完成,T1 继续执行");    } catch (InterruptedException | ExecutionException e) {        e.printStackTrace();    } finally {        executor.shutdown();    }});t1.start();方法3. 使用countdownlatchCountDownLatch latch = new CountDownLatch(1);Thread t2 = new Thread(() -> {    try {        System.out.println("T2 线程正在执行");    } finally {        latch.countDown();  // 完成时减少计数    }});Thread t1 = new Thread(() -> {    try {        System.out.println("T1 线程开始执行");                t2.start();  // 启动 T2 线程        latch.await();  // 等待 T2 完成                System.out.println("T2 线程已完成,T1 继续执行");    } catch (InterruptedException e) {        e.printStackTrace();    }});t1.start();11. a=a+b 和 a+=b的区别a = a + b,如果 a 和 b 的类型不同(如 a 是 int,b 是 double),需要显式强制类型转换,否则会编译报错。即:double a= 1;int b = 2;a = (double) (a+b); a += b,会自动执行隐式类型转换,将结果转换为 a 的类型。13. 数据库的三大范式如答案有错误欢迎指正
查看24道真题和解析
点赞 评论 收藏
分享
评论
2
21
分享

创作者周榜

更多
牛客网
牛客企业服务