某公司面試題:
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 |
- 假設現在有一張表,如下所示:
按第一列分組,同組內按第二列排序,並根據第三行取同組前一行與當前一行的均值作為第四列。
數據格式如下:
| 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 |
參考答案:
