美团优选大数据开发岗面试真题-附答案详细解析(一)

简介: 美团优选大数据开发岗面试真题-附答案详细解析

公众号(五分钟学大数据)已推出大数据面试系列文章—五分钟小面试,此系列文章将会深入研究各大厂笔面试真题,并根据笔面试题扩展相关的知识点,助力大家都能够成功入职大厂!


image.png


此面试题来自牛客网友分享的美团优选一面,面试时长一小时。网友情况:海外水本,在某三线中厂工作2年。


参考答案由本公众号提供。如有错误,欢迎指正!


以下为面试过程中提问,岗位为大数据开发,根据提问内容看出,主要偏数仓方向


  1. 自我介绍


  1. 到北京工作的意愿


  1. SQL题,给一张城市和交易额表,一张城市对应省份表, 取出 省份 总 交易额大于 500 的 省份 的名字


  1. SQL题,基于刚才, 得出 省份 总 交易额 [0,500 ] , [500,1000 ] , [1000,+∞ ] 在以下三个区间的 省份 的 数量


  1. SQL题,还是基于刚才, 按从小到大的顺序得出每个城市的累计交易额,可以用窗口


  1. 根据分隔符划分字段,可以用正则表达


  1. 主要负责的产品


  1. 产品的指标如何知道带来多少价值


  1. 指标如何做到精准


  1. 就项目中提到的某个实体,讲一下他对应的属性有哪些


  1. 如果你建模的话,你会如何建模


  1. 主要都抽取哪些数据源,使用什么工具


  1. 描述一下抽取的内部逻辑,怎么实现的


  1. 除了工作,有去读什么书学习吗


  1. 你觉得flink和spark streaming有什么区别


  1. spark streaming相比flink有什么优点


  1. 有什么想问的吗


答案详细解析


1. 自我介绍


面试的时候,面试官说的第一句话就是:“介绍一下你自己吧。”


很多人真的很实诚的就只说一句:“我叫xx,来自xx,今年xx岁。”然后双方冷场。


这样的自我介绍还不如前段时间流行的一句话:“我叫xx,我喜欢唱跳、rap、篮球。”起码你还让面试官知道了你的特长。


所以这里就需要你用最短的时间让面试官记住你,突出自己的优势、有论证力的说服对方。


原则如下:不要大段背诵简历内容;不要说流水账,内容冗长;自我介绍时间尽量控制在一分钟左右。


那么怎么在最短时间内满足以上三条。


罗振宇说过:“笨拙的人讲道理,而聪明的人会说故事。”


所以面试时我们要摆脱常规回答,学会“讲故事”。那故事怎么讲,记住以下八个字,将自己的经历或想法套进去:


  • 目标:就是我想要做什么,我想要成为什么样的人;
  • 阻碍:做这件事的难点是什么,有哪些“质疑”点;
  • 努力:为了克服难点和“质疑”,我做了哪些事情;
  • 结果:通过我的努力,我现在获得了什么样的成就。


有时间了针对 自我介绍 我再详细的讲解下,这部分还是很重要的,因为这部分就是“推销”自己,给自己打广告的时间。


2. 到北京工作的意愿


招人肯定是希望找到一个踏实,稳定的人,而不是那种来了几天或一段时间就走的人。


面试官问你这个问题,一是在看你大概能在公司呆多久,二是看公司是否有必要培养你或者录用你。


所以回答时一定要表达出你一定能来北京并且能长时间待下去(即使你不是这样),具体回答发挥个人想象。


3. SQL题,给一张城市和交易额表,一张城市对应省份表, 取出 省份 总 交易额大于 500 的 省份 的名字


为了便于理解,根据上面的问题,我们先构造这两张表:


城市交易额表 business_table


city_num:城市编号


gmv:交易额


city_num gmv
1001 210
1001 90
1002 250
1003 200
1004 700
1005 350
1005 150
1006 250
1007 150


城市对应省份表:province_table

province_num:省份编号

province_name:省份名称

city_num:城市编号


province_num province_name city_num
11 a 1001
11 a 1005
12 b 1002
12 b 1003
13 c 1004
13 c 1006
13 c 1007


根据以上表,sql 语句如下(以下仅为其中一种写法,仅供参考)


SELECT MAX(tmp.province_name)
FROM (
  SELECT bt.city_num, bt.gmv, pt.province_num, pt.province_name
  FROM business_table bt
    LEFT JOIN province_table pt ON bt.city_num = pt.city_num
) tmp
GROUP BY tmp.province_num
HAVING SUM(tmp.gmv) > 500;


4. SQL题,基于刚才, 得出 省份 总 交易额 [0,500 ] , [500,1000 ] , [1000,+oo ] 在以下三个区间的 省份 的 数量


参考 sql 语句如下:


SELECT 
  COUNT(CASE 
    WHEN tmp2.pro_gmv >= 0
    AND tmp2.pro_gmv < 500 THEN tmp2.pro_name
    ELSE NULL END) AS gmv_0_500,
  COUNT(CASE 
    WHEN tmp2.pro_gmv >= 500
    AND tmp2.pro_gmv < 1000 THEN tmp2.pro_name
    ELSE NULL END) AS gmv_500_1000, 
  COUNT(CASE 
    WHEN tmp2.pro_gmv >= 1000 THEN tmp2.pro_name
    ELSE NULL END) AS gmv_1000_
FROM (
  SELECT MAX(tmp.province_name) AS pro_name, SUM(tmp.gmv) AS pro_gmv
  FROM (
    SELECT bt.city_num, bt.gmv, pt.province_num, pt.province_name
    FROM business_table bt
      LEFT JOIN province_table pt ON bt.city_num = pt.city_num
  ) tmp
  GROUP BY tmp.province_num
) tmp2;


5. SQL题,还是基于刚才, 按从小到大的顺序得出每个城市的累计交易额,可以用窗口


参考 sql 语句如下:


# 既然面试官让用窗口函数,那咱们就别客气了
SELECT city_num, gmv
FROM (
  SELECT DISTINCT city_num, SUM(gmv) OVER(PARTITION BY city_num) AS gmv
  FROM business_table
) tmp
ORDER BY gmv;


6. 根据分隔符划分字段,可以用正则表达


# java
String address="上海|上海市|闵行区|吴中路"; 
String[] splitAddress=address.split("\\|"); //如果以竖线为分隔符,则split的时候需要加上两个斜杠 \\ 进行转义
#sql
hive> select split('abcdef', 'c') from test;
["ab", "def"]


7. 主要负责的产品


这个根据简历或者你自己的情况实际实说就行。


8. 产品的指标如何知道带来多少价值


这题没有标准答案,根据自己的理解回答即可。


以下仅供参考:


在《精益数据分析》一书中给出了两套比较常用的指标体系建设方法论,其中一个就是比较有名的海盗指标法,也就是我们经常听到的AARRR海盗模型。海盗模型是用户分析的经典模型,它反映了增长是系统性地贯穿于用户生命周期各个阶段的:用户拉新(Acquisition)用户激活(Activation)用户留存(Retention)商业变现(Revenue)用户推荐(Referral)


为什么要说这个模型呢,因为通过这个模型中的一些关键指标我们可以反推出产品的指标所带来的价值有哪些。


AARRR模型:


A 拉新: 通过各种推广渠道,以各种方式获取目标用户,并对各种营销渠道的效果评估,不断优化投入策略,降低获客成本。涉及关键指标例如 新增注册用户数、激活率、注册转化率、新客留存率、下载量、安装量等,我们通过这些指标就可反应出获取目标用户的效果是怎样的。


A 活跃: 活跃用户指真正开始使用了产品提供的价值,我们需要掌握用户的行为数据,监控产品健康程度。这个模块主要反映用户进入产品的行为表现,是产品体验的核心所在。涉及关键指标例如 DAU/MAU 、日均使用时长、启动APP时长、启动APP次数等。


通过这些指标可以反映出用户的活跃情况。


R 留存: 衡量用户粘性和质量的指标。涉及关键指标例如 留存率、流失率等。通过这些指标可以反映出用户的留存情况。


R 变现: 主要用来衡量产品商业价值。涉及关键指标例如 生命周期价值(LTV)、客单价、GMV等。这些指标可以反映出产品的商业价值。


R 推荐: 衡量用户自传播程度和口碑情况。涉及关键指标例如 邀请率、裂变系数等。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
11月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
11月前
|
SQL 存储 关系型数据库
美团面试:事务提交了,数据丢失 了 ?大概的原因是什么?
美团面试:事务提交了,数据丢失 了 ?大概的原因是什么?
美团面试:事务提交了,数据丢失 了 ?大概的原因是什么?
|
11月前
|
消息中间件 架构师 Java
美团面试:对比分析 RocketMQ、Kafka、RabbitMQ 三大MQ常见问题?
美团面试:对比分析 RocketMQ、Kafka、RabbitMQ 三大MQ常见问题?
美团面试:对比分析 RocketMQ、Kafka、RabbitMQ 三大MQ常见问题?
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
478 2
|
存储 关系型数据库 MySQL
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
机器学习/深度学习 人工智能 JSON
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
Resume Matcher 是一款开源AI简历优化工具,通过解析简历和职位描述,提取关键词并计算文本相似性,帮助求职者优化简历内容,提升通过自动化筛选系统(ATS)的概率,增加面试机会。
1523 18
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
|
12月前
|
人工智能 算法 数据库
美团面试:LLM大模型存在哪些问题?RAG 优化有哪些方法?_
美团面试:LLM大模型存在哪些问题?RAG 优化有哪些方法?_
|
人工智能 DataWorks 大数据
大数据AI一体化开发再加速:DataWorks 支持GPU类型资源
大数据开发治理平台 DataWorks 的Serverless资源组支持GPU资源类型,以免运维、按需付费、弹性伸缩的Serverless架构,将大数据处理与AI开发能力无缝融合。面向大数据&AI协同开发场景,DataWorks提供了交互式开发和分析工具Notebook。开发者在创建个人开发环境时,可以选择GPU类型的资源作为Notebook运行环境,以支持进行高性能的计算工作。本教程将基于开源多模态大模型Qwen2-VL-2B-Instruct,介绍如何使用 DataWorks Notebook及LLaMA Factory训练框架完成文旅领域大模型的构建。
891 24
|
存储 NoSQL 前端开发
美团面试:手机扫描PC二维码登录,底层原理和完整流程是什么?
45岁老架构师尼恩详细梳理了手机扫码登录的完整流程,帮助大家在面试中脱颖而出。该过程分为三个阶段:待扫描阶段、已扫描待确认阶段和已确认阶段。更多技术圣经系列PDF及详细内容,请关注【技术自由圈】获取。
|
数据采集 机器学习/深度学习 DataWorks
DataWorks产品评测:大数据开发治理的深度体验
DataWorks产品评测:大数据开发治理的深度体验
569 1

推荐镜像

更多
  • DNS