深圳微信分销网站建设,兰州市科协网站,临沂做网站哪家好,wordpress主题授权系统近期#xff0c;有参加春招的同学和我交流了他的面试历程#xff0c;我针对这些内容进行了细致的总结与梳理#xff0c;并在此分享出来#xff0c;希望能助力大家学习与借鉴。 1.八股文
1#xff09;HashMap的底层原理是什么【见V6.0面试笔记 Java基础部分第19题】
2有参加春招的同学和我交流了他的面试历程我针对这些内容进行了细致的总结与梳理并在此分享出来希望能助力大家学习与借鉴。 1.八股文
1HashMap的底层原理是什么【见V6.0面试笔记 Java基础部分第19题】
2了解MapReduce的combine和merge吗【见V6.0面试笔记 MapReduce部分第1题】
3Hive分区和分桶的区别是什么以及适用的场景分别是什么【见V6.0面试笔记 Hive部分第5题】
4Hive/Spark是如何构建UDF的【见V6.0面试笔记 Hive部分第14题】 面试笔记补充Spark是如何构建UDF的【补充至 Spark补充题第26题】
// 1.定义UDF获取字符串的最后一个字符
def strLastChar(col: String) {str.last
}
// 2.注册UDF
spark.udf.register(strLastChar, strLastChar _)
// 3.使用UDF
spark.sql(select name, strLastChar(name) from tmp)5Spark中job、stage、task之间的关系是什么【见V6.0面试笔记 Spark部分第6题】
6Spark中CheckPoint、Cache、Persist的区别是什么【见V6.0面试笔记 Spark部分第14题】
7你执行Spark任务时是如何确定Executor的数量、核数以及内存大小的【见V6.0面试笔记 Spark部分第4题】 面试笔记补充如何确定Executor的数量、核数以及内存大小的【补充至 Spark补充题第27题】
Executor数量num-excutors集群总CPU核心数 / excutor-cores官网推荐50100Executor核心数excutor-cores官网推荐 24 核心数Executor内存excutor-memory官网推荐 4G8G
8HBase一般适用于什么场景使用【见V6.0面试笔记 HBase部分第2题】
9你用过ElasticSearch吗简单介绍一下 Elasticsearch 是一个开源的分布式搜索引擎分布式体现在将数据存储在多个节点上这些节点之间形成一个集群数据会被分成多个分片shards每个分片可以有多个副本replicas用来保证数据的高可用性搜索使用一种倒排索引inverted index的数据结构将文本中的单词与其出现的文档位置相关联从而实现快速的搜索。
10了解ElasticSearch的倒排索引吗 倒排索引是一种索引结构它将文档中的单词映射到包含这些单词的文档集合与传统的正向索引将文档映射到单词列表不同倒排索引反转了这种关系能够快速定位到包含特定单词的文档。我简单介绍一下它的原理首先将文档的文本内容通过分词器分割成单词然后为每个分词后的单词构建其对应的倒排列表在 Elasticsearch 中倒排索引是自动构建和维护的。在搜索时系统根据查询关键词查找倒排索引快速定位包含这些关键词的文档
2.项目
1介绍一个你觉得做得最好的项目 2你认为其中的难点在哪里 3举一个你曾经遇到过的最难写的代码的例子
3.刷题
SQL题
题目 有一张某日若干A股交易流水表dwd_trd_stock_price_log包含s_code股票代码、price交易价格、ds交易时间计算当天股票交易能够达到的最大利润 参考答案
selects_code,max(profit) as max_profit
from(selects_code,price - min_price as profitfrom(selects_code,price,min(price) over(partition bys_codeorder bySTR_TO_DATE(ds, %Y-%m-%d %H:%i)) as min_pricefromdwd_trd_stock_price_log) t) t
group bys_code;算法题
题目 正则表达式匹配 LeetCode第10题 参考答案
class Solution {public boolean isMatch(String s, String p) {int m s.length(), n p.length();boolean[][] dp new boolean[m 1][n 1]; // 1 为了方便处理边界// dp初始化dp[0][0] true;for (int i 1; i m 1; i) {dp[i][0] false; // 空的匹配串是匹配不上字符的}for (int i 1; i n 1; i) { // a* 是可以匹配上空字符的if (p.charAt(i - 1) *)dp[0][i] dp[0][i - 2];elsedp[0][i] false;}for (int i 1; i m; i) {for (int j 1; j n; j) {if (p.charAt(j - 1) *) {if (isMatch(s, p, i, j - 1)) {dp[i][j] dp[i][j - 2] || dp[i - 1][j];} else { // 使用*dp[i][j] dp[i][j - 2];}} else {dp[i][j] dp[i - 1][j - 1] isMatch(s, p, i, j);}}}return dp[m][n];}private static boolean isMatch(String s, String p, int i, int j) {return s.charAt(i - 1) p.charAt(j - 1) || p.charAt(j - 1) .;}
}