大数据工程师面试 - 字节跳动 Hive 面试考点!

我是大数据欧老师,曾在互联网某大厂任大数据负责人,从业大数据领域近 10 年,全网粉丝 5000+,从很多候选人的面试和咨询中复盘了大数据工程师的面试全流程,如果你有求职大数据工程师的计划,欢迎找我聊一聊!

直接拿走去复习!!!

Hive 知识点(上)- HSQL 语法

  1. 什么是窗口函数?
  2. ROW_NUMBER() / RANK() / LAG() / LEAD() 的含义?
  3. RANK() 和 DENSE_RANK() 的区别?
  4. 上述窗口函数的使用场景?
  5. PARTITION / CLUSTER BY / DISTRIBUTE BY 的含义和区别?
  6. 使用 STACK 进行列转行?
  7. 使用 EXPLODE 进行行转列?

Hive 性能优化

  1. 数据倾斜的场景有哪些?
  2. 如何在 Hive 中判断数据发生了倾斜?
  3. 数据倾斜一般如何处理?
  4. Shuffle 的类型和性能优化手段?
  5. Hive 的存储格式有哪些?有什么优劣势?
#牛客在线求职答疑中心##机械人晒出你的简历##机械人的春招flag##牛客解忧铺##大数据#

解决职场真实面试问题,分享同学真实成功案例,欢迎订阅关注!

全部评论
你好,我是AI牛可乐,很高兴为你解答问题。 1. 窗口函数:窗口函数是一种特殊的函数,可以在查询中对数据进行分组和排序,然后对每个分组进行计算。 2. ROW_NUMBER():为每条记录分配唯一的序号,序号从1开始,按照记录的顺序生成。 3. RANK():为每条记录分配一个排名,排名相同的记录具有相同的排名值,排名值按照记录的顺序生成。 4. LAG():返回当前行之前的第N行的值。 5. LEAD():返回当前行之后的第N行的值。 6. RANK() 和 DENSE_RANK() 的区别:RANK() 会为排名相同的记录分配相同的排名值,而 DENSE_RANK() 会为排名相同的记录分配连续的排名值。 7. 上述窗口函数的使用场景:窗口函数常用于计算移动平均数、累计和、排名等。 8. PARTITION BY:根据指定的列对数据进行分组。 9. CLUSTER BY:根据指定的列对数据进行分组,同时按照分组后的数据进行排序。 10. DISTRIBUTE BY:根据指定的列对数据进行分发,将数据分发到不同的节点上进行处理。 11. 使用 STACK 进行列转行:STACK 函数可以将多列数据转换为单列数据,每行表示一个数据组。 12. 使用 EXPLODE 进行行转列:EXPLODE 函数可以将一行数据转换为多行数据,每行表示一个数据项。 13. Hive 性能优化:数据倾斜的场景包括 JOIN 操作、GROUP BY 操作和 ORDER BY 操作。在 Hive 中判断数据发生了倾斜的方法包括查看任务进度和查看任务日志。数据倾斜的一般处理方法包括过滤导致倾斜的键值、使用随机前缀和值拆分。Shuffle 的类型包括 Map 端 Shuffle 和 Reduce 端 Shuffle,性能优化手段包括调整 Map 和 Reduce 任务的数量、调整 Shuffle 的缓冲区大小和调整 Shuffle 的并行度。 14. Hive 的存储格式:Hive 支持多种存储格式,包括 TextFile、SequenceFile、RCFile、ORC 和 Parquet。TextFile 是 Hive 的默认存储格式,适合存储文本数据;SequenceFile 适合存储二进制数据;RCFile
1
送花
回复 分享
发布于 02-27 21:56 AI生成

相关推荐

4 46 评论
分享
牛客网
牛客企业服务