脉脉大数据开发实习生一面

岗位JD

使用大数据组件对海量数据进行建模,参与数据仓库的的开发、维护及优化

岗位要求

  1. 计算机相关专业,对大数据有浓烈的兴趣
  2. 扎实的计算机基础,熟练使用python/java/scala其中至少一种语言
  3. 熟悉Hadoop生态体系,包括但不限于Hadoop/Hive/Spark/Clickhouse
  4. 学习能力强,强烈的责任心,具有较强的沟通能力及团队合作精神,细致耐心、积极主动
  5. 有大规模数据/日志处理经验,熟悉离线计算者优先

一面

  1. 自我介绍
  2. 对数仓分层、维度建模有什么相关的了解。数仓分层答的不是很好 磕磕绊绊 得加强 维度建模还行
  3. 项目是都跟着走完了还是?
  4. 维度建模分数据域和分层 主题域 分了哪些数据域 数据是怎么流向的 大概讲解下 数据域(交易域 流量域 用户域 工具域 互动域)
  5. 对hive的优化有什么了解?具体的优化措施
  6. 本科和硕士都是大数据相关 数仓大数据类相关的知识学过哪些
  7. hadoop三大件有哪些
  8. 简单讲一下mapreduce怎么跑起来的 mapreduce的流程 这个没讲好
  9. 简单讲一下shuffle的原理?
  10. 两道hive sql题 简单题 1:排名函数 2 多行转多列
  11. 反问:我问了 工作时间(早10晚7)和工作氛围(和蔼平和)怎么样?最近部分有项目在忙吗?

以后可以问 面试官对我有一些什么建议吗?技术上,简历上,面试上等?

SQL题总结

第一题 窗口函数

select a,second_c
from (
  select a,second_c,
  row_number() over (partition by a order by b) rank
  from t2
where rank=2
)t
group by a

问题 子查询里面的 where 不能直接用rank判断 这样会报错 where 应该写在外面 且是c列 不是second_c

第二题

select 
    year,
    concat_ws(',', collect_list(case when department = 'A' then person_count else null end))  col_A,
    concat_ws(',', collect_list(case when department = 'B' then person_count else null end))  col_B
from t
group by year;


全部评论
还好,问的不是很深
1 回复 分享
发布于 2024-01-31 21:51 上海
大佬
点赞 回复 分享
发布于 2024-01-15 16:28 河南
我们组刚走一个 就招人了😅
点赞 回复 分享
发布于 2024-01-15 21:21 北京
请问有二面的面经吗
点赞 回复 分享
发布于 2024-12-04 00:18 辽宁

相关推荐

1. NAT和IPv6作为解决IPv4地址耗尽问题的两个方法,分别存在什么问题        NAT        - 端到端通信受限,客户端设备无法直接被外部访问    - 复杂性增加        IPv6        - 兼容性问题    - 部署成本高2. 视频会议为什么使用UDP协议,数据丢失如何解决    - 低延迟:UDP 没有连接建立、确认、重传等机制,传输速度快,适用于实时通信。    - 丢包可容忍:视频和音频数据即使丢失部分帧,仍然可以继续播放,不影响整体体验,而 TCP 需要等待重传,可能会导致卡顿。    - 数据丢失可以采用更可靠的协议,比如基于UDP的QUIC协议3. Linux中,创建、移动、复制、删除文件和目录的指令    - 创建文件:touch filename    - 创建目录:mkdir dirname    - 复制文件:cp source dest    - 复制目录:cp -r sourcedir destdir    - 移动/重命名文件:mv source dest    - 删除文件:rm filename    - 删除目录:rm -r dirname4. SQL中的子查询是什么,可以用在什么场景    子查询是指 在一个 SQL 语句中嵌套另一个查询,通常用于筛选数据或计算值。    - 筛选数据 :SELECT name FROM students WHERE id IN (SELECT student_id FROM scores WHERE score > 90);    - 计算聚合值:SELECT name, salary FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);5. volatile关键字的作用是什么        volatile 关键字用于 保证变量的可见性,即多线程环境下,一个线程对 volatile 变量的修改会立即被其他线程看到。作用如下:        1. 禁止指令重排序,保证代码按顺序执行。    2. 保证可见性,每次访问 volatile 变量时,都会从主存中读取最新值,而非线程的本地缓存。    3. 不保证原子性,如 volatile int count++ 仍然可能产生竞态条件,需要 synchronized 或 AtomicInteger 解决。6. Java中的多态是如何实现的 谈谈你对多态的理解        **多态(Polymorphism)** 指的是 **同一方法在不同对象上表现出不同的行为**。Java 中的多态可以从以下几个方面考虑:        - 方法重写:子类重写父类的方法    - 方法重载:同一个类中的同名方法,参数不同、返回值不同,根据需要调用    - 接口和抽象类:通过接口或抽象类,使不同类具有相同方法签名,实现不同功能。7. 设计一个校园论坛帖子的防刷机制,如何考虑    - 限流/分布式限流    - IP黑名单    - 验证码8. 如何识别和应对点赞的恶意脚本和机器人9. 实习和项目中是如何应对快速学习的情况的10. 短链接项目的背景和目的是什么(第八个问题中提到了短链接项目)11. 你在短链接项目中具体负责的部分是什么,是如何使用Kafka消息队列的12. 你在实际开发中是否遇到过很复杂的问题,你是如何发现并解决的13. 三年内职业规划
查看13道真题和解析
点赞 评论 收藏
分享
评论
5
40
分享

创作者周榜

更多
牛客网
牛客企业服务