京东-零售-数据研发面经【附答案】
近期,有参加春招的同学和我交流了他的面试历程,我针对这些内容进行了细致的总结与梳理,并在此分享出来,希望能助力大家学习与借鉴。
1.八股文
1)HashMap的底层原理是什么【见V6.0面试笔记 Java基础部分第19题】
2)了解MapReduce的combine和merge吗【见V6.0面试笔记 MapReduce部分第1题】
3)Hive分区和分桶的区别是什么以及适用的场景分别是什么【见V6.0面试笔记 Hive部分第5题】
4)Hive/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")
5)Spark中job、stage、task之间的关系是什么【见V6.0面试笔记 Spark部分第6题】
6)Spark中CheckPoint、Cache、Persist的区别是什么【见V6.0面试笔记 Spark部分第14题】
7)你执行Spark任务时是如何确定Executor的数量、核数以及内存大小的【见V6.0面试笔记 Spark部分第4题】
面试笔记补充:如何确定Executor的数量、核数以及内存大小的?【补充至 Spark补充题第27题】
- Executor数量(num-excutors):集群总CPU核心数 / excutor-cores;官网推荐50~100
- Executor核心数(excutor-cores):官网推荐 2~4 核心数
- Executor内存(excutor-memory):官网推荐 4G~8G
8)HBase一般适用于什么场景使用【见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) == '.';}
}
相关文章:
京东-零售-数据研发面经【附答案】
近期,有参加春招的同学和我交流了他的面试历程,我针对这些内容进行了细致的总结与梳理,并在此分享出来,希望能助力大家学习与借鉴。 1.八股文 1)HashMap的底层原理是什么【见V6.0面试笔记 Java基础部分第19题】 2&am…...

python中的JSON数据格式
文章目录 什么是json主要功能Python数据和Json数据的相互转化 什么是json JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据。JSON本质上是一个带有特定格式的字符串。 主要功能 json就是一种在各个编程语言中流通的数据格式,负责不同编…...
ubuntu+aarch64+dbeaver安装【亲测,避坑】
一:访问 Oracle JDK,下载jdk-11.0.26_linux-aarch64_bin.tar.gz 二:解压 tar -xvzf jdk-11.0.20_linux-x64_bin.tar.gz三:将解压后的 JDK 文件夹移动到 /usr/lib/jvm 目录 sudo mv jdk-11.0.26 /usr/lib/jvm/四:进入…...

Java 大视界 -- 基于 Java 的大数据机器学习模型压缩与部署优化(99)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...

vscode中使用PlatformIO创建工程加载慢
最近使用vscodeplatformIO开发esp32s3,第一次创建工程时加载速度很慢,查询资料解决问题,特此记录。 1.新建环境变量pyhton 此电脑-属性-高级系统设置中(直接搜索高级系统设置也行),添加系统变量ÿ…...
微信小程序数据绑定与事件处理:打造动态交互体验
在上一篇中,我们学习了如何搭建微信小程序的开发环境并创建了一个简单的“Hello World”页面。然而,一个真正的小程序不仅仅是静态内容的展示,它需要与用户进行动态交互。本文将深入探讨微信小程序中的数据绑定和事件处理机制,通过…...

力扣 下一个排列
交换位置,双指针,排序。 题目 下一个排列即在组成的排列中的下一个大的数,然后当这个排列为降序时即这个排列最大,因为大的数在前面,降序排列的下一个数即升序。所以,要是想找到当前排列的下一个排列&…...

JavaWeb 学习笔记
前端基础 HTML-CSS <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport"content"widthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0…...

Linux7-线程
一、前情回顾 chdir();功能: 函数用于改变当前进程的工作目录。 参数:路径(Path):这是一个字符串参数,表示要切换到的目标目录的路径。 返回值: 成功:在成功改变当前工作目…...

在线VS离线TTS(语音合成芯片)有哪些优势-AIOT智能语音产品方案
离线 TTS 存在语音质量欠佳、音色选择有限、语言支持单一更新困难、占用资源多、适应性差、难以个性化定制等痛点 01更新维护困难 由于是离线模式,难以及时获取最新的语音数据和算法更新,无法得到持续改进。 02占用本地资源 需要在设备本地存储较大的…...
结构型模式 - 代理模式 (Proxy Pattern)
结构型模式 - 代理模式 (Proxy Pattern) 代理模式是一种结构型设计模式,它允许通过代理对象来控制对另一个对象(目标对象)的访问。代理对象充当目标对象的接口,客户端通过代理对象间接访问目标对象。 分为两大类 静态代理&#…...
el-select滚动获取下拉数据;el-select滚动加载
el-select下拉获取数据 1.解决问题2.封装MyScrollSelect组件3.使用MyScrollSelect组件 1.解决问题 场景:下拉数据量过大,后端提供一个分页查询接口;需要每次滚动加载下一页的下拉数据 且单选的状态,需要支持回显,通过n…...
HTTP GET 请求示例
鸿蒙操作系统(HarmonyOS)是华为公司自主研发的面向全场景的分布式操作系统,旨在为用户提供一个安全、流畅且跨设备无缝连接的体验。它支持多种终端设备,如智能手机、平板电脑、智能电视、汽车等,并实现了模块化解耦&am…...
简单理解Oracle中的latch
可以用一个小卖部抢购的例子来理解 Oracle 数据库中的 Latch: 1、 什么是 Latch? 打个比方,假设数据库的某个内存区域(比如缓存的数据块)是小卖部货架上的最后一包辣条,Latch 就像是货架前的一个狭窄通道&a…...

ubuntu新系统使用指南
1. 更新源 2. 配置rime 输入法 sudo apt install ibus-rimeibus-setup #打开配置界面添加雾凇拼音 cd ~/Documents/Tool/input_source/plumgit clone --depth 1 https://github.com/rime/plum plum #没有梯子就劝退cd plum/bash rime-install iDvel/rime-ice:others/recipe…...
sage-huga改进SITAN
Sage-Husa自适应滤波算法 Sage-Husa自适应滤波算法是一种在递推滤波过程中实时估计和修正系统噪声和观测噪声统计特性的算法,从而降低系统模型误差,提高滤波精度。该算法基于卡尔曼滤波,并通过自适应调整噪声协方差矩阵来优化滤波效果。 算法原理 Sage-Husa滤波器的核心思…...

DeepSeek开源周Day1:FlashMLA引爆AI推理性能革命!
项目地址:GitHub - deepseek-ai/FlashMLA 开源日历:2025-02-24起 每日9AM(北京时间)更新,持续五天! 一、开源周震撼启幕 继上周预告后,DeepSeek于北京时间今晨9点准时开源「FlashMLA」,打响开源周五连…...

Git add --- error: Filename too long
0 Preface/Foreword 1 解决办法 git config --system core.longpaths true...

Python入门12:面向对象的三大特征与高级特性详解
面向对象编程(OOP)是Python编程中非常重要的一部分,它通过封装、继承和多态这三大特征,帮助我们更好地组织和管理代码。除此之外,Python还提供了一些其他特性,如类属性、类方法和静态方法,进一步…...

动态链接器(九):.init和.init_array
ELF文件中的.init和.init_array段是程序初始化阶段的重要组成部分,用于在main函数执行前完成必要的初始化操作。 1 .init段和.init_array 段 1.1 作用 .init段包含编译器生成的初始化代码,通常由运行时环境(如C标准库的启动例程࿰…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...