京东-零售-数据研发面经【附答案】
近期,有参加春招的同学和我交流了他的面试历程,我针对这些内容进行了细致的总结与梳理,并在此分享出来,希望能助力大家学习与借鉴。
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标准库的启动例程࿰…...
微信小程序的校园快递代领学生跑腿平台小程序
目录同行可拿货,招校园代理 ,本人源头供货商功能模块划分技术实现要点扩展功能项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块划分 用户端功能 注册与登录:支持手…...
别再手动扫码了!教你用Python+OpenCV+YOLO批量自动识别图片视频里的条码二维码
PythonOpenCVYOLO:打造高效条码识别自动化工具 在电商运营、库存管理和内容审核等场景中,处理大量包含条码和二维码的图片视频是日常工作的一部分。传统的手动扫码方式不仅效率低下,还容易出错。本文将介绍如何利用Python结合OpenCV和YOLO模型…...
不锈钢彩涂板哪个靠谱
最近好几个做工程的朋友跟我吐槽,说厂房屋顶的彩涂板用了不到三年就开始生锈、掉漆,维修成本比当初省的那点钱高多了。这让我想起去年帮一个化工厂选材的经历,当时对比了市面上好几家,最后才明白:选不锈钢彩涂板&#…...
提示词工程(Prompt Engineering)-周红伟
你有没有遇到过这种情况:明明给了 AI 一个问题,得到的回答却空泛、跑题、毫无用处? 这不是 AI 的问题,往往是提问方式的问题。 提示词工程(Prompt Engineering)就是一门关于如何构造和精炼你的提示词的艺术…...
从 219 秒到 1.3 秒!CausVid:首个媲美双向扩散的流式视频生成模型深度解析
前言 你是否有过这样的经历:输入一段文本生成视频,盯着屏幕等了 3 分多钟才看到结果?这就是传统双向视频扩散模型的致命痛点 —— 生成 128 帧视频需要 219 秒,且必须等全部内容生成完毕才能观看,更别提中途修改提示词…...
Xiaomusic:开源智能音乐中心解决方案,重塑小爱音箱的音频生态
Xiaomusic:开源智能音乐中心解决方案,重塑小爱音箱的音频生态 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 在智能家居生态系统中…...
ZLUDA终极实践指南:在非NVIDIA GPU上无缝运行CUDA程序的完整方案
ZLUDA终极实践指南:在非NVIDIA GPU上无缝运行CUDA程序的完整方案 【免费下载链接】ZLUDA CUDA on non-NVIDIA GPUs 项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA ZLUDA是一个革命性的开源项目,它让开发者和研究者能够在非NVIDIA GPU上…...
刚考上研究生的小白怎么写综述?
除了传统的写作方法,我们需要的是一种能够将传统数周的文献调研压缩至分钟级的高效解决方案,这便是智能化科研工具的核心价值所在。 MedPeer基于国内科研现状,打造出了Deep Search这款智能文献检索与分析工具。它覆盖了3亿篇文献数据库&…...
保姆级教程:用Python脚本将VisDrone2019数据集一键转成COCO格式(附完整代码)
从VisDrone到COCO:无人机视觉数据格式转换实战指南 当你第一次打开VisDrone2019数据集时,可能会被那些密密麻麻的.txt标注文件弄得一头雾水。作为计算机视觉领域最常用的无人机视角数据集之一,VisDrone却采用了与主流框架不兼容的自定义格式—…...
顶级同传并非天赋堆砌,而是一套可复制、高强度、科学化的训练体系。全球顶尖院校及机构(如欧盟口译司、巴黎高翻、联合国译训部)均采用标准化训练逻辑,核心围绕听辨、分脑、短时记忆、语言转换、抗压输出五大能力
顶级同传并非天赋堆砌,而是一套可复制、高强度、科学化的训练体系。全球顶尖院校及机构(如欧盟口译司、巴黎高翻、联合国译训部)均采用标准化训练逻辑,核心围绕听辨、分脑、短时记忆、语言转换、抗压输出五大能力闭环,…...
