【面试题】大数据开发岗位

某公司面试题:
1、阐述数据库的三大范式?

2、Linux 自带的常用命令举例至少20个?

3、Spark 有哪些聚合类的算子,我们应该尽量避免什么类型的算子?

4、Hive 和 HBase 的区别?

5、你了解设计模式吗?写出你知道的设计模式。

6、常见的GC算法有哪些?

7、kafka 的数据存在内存还是磁盘?

8、什么是shuffle?写出你知道的Spark Shuffle 相关参数配置。

9、有一个10G的文件要存入HDFS,描述一下存储过程。HDFS默认块大小128MB.

10、Kafka 选举策略。

11、Hive 内部表和外部表的区别?应该如何选择使用哪种表呢?

12、内存泄露和内存溢出有什么区别?

13、用Java代码写一个你所知道的排序算法。

14、写出wordcount并排序,linux、java(非mr)、hive、spark、Flink,以以上五种语言中任选两种进行书写。

15、Flink 计算单位是什么?

16、Flink 窗口类型有哪些?你都用过哪些窗口?

17、假设现在有一张Hive 表,如下所示:
元数据格式为:
字段:

col1    string
col2    string

表中有两个字段,字段类型都为String,现在需要将数据拆分专为多列。
数据格式如下:

col1 col2
a,b,c,d 2:00,3:00,4:00,5:00
f,b,c,d 1:10,2:20,3:30,4:40
col1 col2
a 2:00
b 3:00
c 4:00
d 5:00
  1. 假设现在有一张表,如下所示:
    按第一列分组,同组内按第二列排序,并根据第三行取同组前一行与当前一行的均值作为第四列。
    数据格式如下:
col 1 col2 col3
2014 A 3
2014 C 1
2014 B 2
2015 A 4
2015 C 3

=>

col1 col2 col3 col4
2014 A 3 3
2014 B 2 2.5
2014 C 1 1.5
2015 A 4 4
2015 C 3 3.5

19、假设现有一张Hive表,如下所示:
col1 是有序的,按照col2 分块计数,每当col2发生变化,就重新开始计数,计数的结果当做col3返回。
数据格式如下:

col1 col2
2014 1
2015 1
2017 0
2018 0
2019 1
2020 1
2021 1
2022 0
2023 0
col1 col2 col3
2014 1 1
2015 1 2
2017 0 1
2018 0 2
2019 1 1
2020 1 2
2021 1 3
2022 0 1
2023 0 2

参考答案:

posted @ 2020-08-28 12:54  水木青楓  阅读(625)  评论(0编辑  收藏  举报