大数据面试题-场景题

news2024/10/7 14:30:23

1.手写Flink的UV

手写Flink的UV

2.Flink的分组TopN

Flink的分组TopN

3.Spark的分组TopN

1)方法1:

(1)按照key对数据进行聚合(groupByKey)

(2)将value转换为数组,利用scala的sortBy或者sortWith进行排序(mapValues)数据量太大,会OOM。

2)方法2:

(1)取出所有的key

(2)对key进行迭代,每次取出一个key利用spark的排序算子进行排序

方法3:

(1)自定义分区器,按照key进行分区,使不同的key进到不同的分区

(2)对每个分区运用spark的排序算子进行排序

Spark的分组TopNhttp://t.csdn.cn/Jh1PB

4.如何快速从40亿条数据中快速判断,数据123是否存在

答:解决方案:申请512M的内存,一个bit位代表一个unsigned int值。读入40亿个数,设置相应的bit位,读入要查询的数,查看相应bit位是否为1,为1表示存在,为0表示不存在。dizengrong: 方案2:因为2^32为40亿多,所以给定一个数可能在,也可能不在其中;这里我们把40亿个数中的每一个用32位的二进制来表示假设这40亿个数开始放在一个文件中。然后将这40亿个数分成两类: 1.最高位为0 2.最高位为1 并将这两类分别写入到两个文件中,其中一个文件中数的个数<=20亿,而另一个>=20亿(这相当于折半了);与要查找的数的最高位比较并接着进入相应的文件再查找再然后把这个文件为又分成两类: 1.次最高位为0 2.次最高位为1并将这两类分别写入到两个文件中,其中一个文件中数的个数<=10亿,而另一个>=10亿(这相当于折半了); 与要查找的数的次最高位比较并接着进入相应的文件再查找。 ....... 以此类推,就可以找到了,而且时间复杂度为O(logn),方案2完。

5.给你100G数据,1G内存,如何排序?

内存只有 1G,需要排序的数据有 100G
因为内存中因为无法把所有数据全部放下,所以需要外部排序,而归并排序是最常用的外部排序
1. 先把文件切分成 200 份,每个 512 M
2. 分别对 512 M 排序,因为内存已经可以放的下,所以任意排序方式都可以
3. 进行 200 路归并,同时对 200 份有序文件做归并过程,最终结果就有序了

七大排序知识点icon-default.png?t=N5K3http://t.csdn.cn/D47GE
6.公平调度器容器集中在同一个服务器上?

不会

7.匹马赛跑,1个赛道,每次5匹进行比赛,无法对每次比赛计时,但知道每次比赛结果的先后顺序,最少赛多少次可以找出前三名?

匹马赛跑,1个赛道,每次5匹进行比赛,无法对每次比赛计时,但知道每次比赛结果的先后顺序,最少赛多少次可以找出前三名?http://t.csdn.cn/VheIs

8. 给定一个点、一条线、一个三角形、一个有向无环图,请用java面向对象的思想进行建模

给定一个点、一条线、一个三角形、一个有向无环图,请用java面向对象的思想进行建模http://t.csdn.cn/sDaJ2

9.HQL场景题

尚大自研刷题网站的网址http://forum.atguigu.cn/interview.html

10.一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析

答: 解决方案:方案1:这题是考虑时间效率。用trie树统计每个词出现的次数,时间复杂度是O(n*le)(le表示单词的平准长度)。然后是找出出现最频繁的前10个词,可以用堆来实现,前面的题中已经讲到了,时间复杂度是O(n*lg10)。所以总的时间复杂度,是O(n*le)与O(n*lg10)中较大的哪一个。

11.给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url

答:解决方案:方案1:可以估计每个文件安的大小为5G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。通读文件a,对每个url求取hash(url)%1000,然后根据所取得的值将url分别存储到1000个小文件(记为a0,a1,...,a999)中。这样每个小文件的大约为300M。通读文件b,采取和a相同的方式将url分别存储到1000小文件(记为b0,b1,...,b999)。这样处理后,所有可能相同的url都在对应的小文件(a0vsb0,a1vsb1,...,a999vsb999)中,不对应的小文件不可能有相同的url。然后我们只要求出1000对小文件中相同的url即可。求每对小文件中相同的url时,可以把其中一个小文件的url存储到hash_set中。然后遍历另一个小文件的每个url,看其是否在刚才构建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。

方案2:如果允许有一定的错误率,可以使用Bloom filter,4G内存大概可以表示340亿bit。将其中一个文件中的url使用Bloom filter映射为这340亿bit,然后挨个读取另外一个文件的url,检查是否与Bloom filter,如果是,那么该url应该是共同的url(注意会有一定的错误率)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/717769.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023如何自学网络安全

自学网络安全可以按照以下步骤进行&#xff1a; 学习基础知识&#xff1a;开始之前&#xff0c;建议先学习计算机网络和操作系统的基础知识&#xff0c;了解网络通信的原理和常见的网络攻击方式。可以通过阅读相关的书籍、在线教程或参加网络安全相关的课程来学习。 学习网络安…

Sanic、uvloop及Asyncio的局限

Sanic sanic使用基于libuv的uvloop事件循环替代python asnycio自带的事件循环替代&#xff0c;以此提高异步性能。Flask和Django是同步框架&#xff0c;Tornado、FastApi和Sanic均为异步框架&#xff0c;Sanic的性能最好。Sanic入门教程&#xff1a;Sanic&#xff1a;一款号称…

阶段小作业:基于docker安装mysql

1.在docker hub 搜索Mysql镜像 docker search --limit 5 Mtsql 2.拉取Mysql 5.7 镜像 docker pull mysql 注意mysql是小写哦 3.创建mysql容器&#xff0c;主机3306端口号映射到容器3306端口 docker run -d -p 3306:3306 --privilegedtrue -v /tmp/mysql/log:/var/log/mysql …

OpenVRLoader 与UnityXR Interaction ToolKit不兼容

1、游戏的VR设备监听与输入都是基于UnityXR,但是当接入OpenVRLoader 时无法正常通过Openvr_xr_plugin去获取设备的输入输出。 2、Openxr 和OpenVRLoader同时打开也还是会没有输入信息。 3、我们需要修改com.unity.xr.interaction.toolkit插件代码,不能直接用packmanage的将插…

从零开始的职场攻略,我是如何成为优秀活动策划的?

想要提升活动策划能力&#xff0c;成为活动操盘手&#xff0c;除了避免踩坑之外&#xff0c;你还需要额外掌握以下 4 项能力。当你持续向着这几个方向提高的时候&#xff0c;你可以感受到作为活动策划带来的成就感&#xff0c;甚至你的整个职业生涯都能够因此迎来一个飞跃。 1…

突破数据边界,开启探索之旅!隐语开源Meetup一周年专场7月22日上海见

小伙伴们&#xff0c;&#x1f4e2;「隐语开源一周年 Meetup 」即将来袭&#xff01;&#x1f389;在一周年 Meetup 上&#xff0c;不仅会对隐语 1.0 版本进行详解&#xff0c;还有新鲜出炉的隐语 MVP 部署体验包&#xff0c;让你秒变高手&#xff01;更有机会与隐私计算行业的…

10年软件测试工程师感悟——写给还在迷茫的朋友

这两天和朋友谈到软件测试的发展&#xff0c;其实软件测试已经在不知不觉中发生了非常大的改变&#xff0c;前几年的软件测试行业还是一个风口&#xff0c;随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业&#xff0c;目前软件测试行业“缺口”已经基本饱和。当然&a…

若依前端项目理解

官网&#xff1a;RuoYi 一、目录结构 一级目录&#xff1a;通过vue3.0及以后版本创建的项目文件 二级目录&#xff08;src文件&#xff09;&#xff1a; ruoyi-ui&#xff08;前端文件夹&#xff09; bin文件夹&#xff08;批处理文件&#xff0c;打包、运行&#xff09; bui…

k8s部署springboot

前言 首先以SpringBoot应用为例介绍一下k8s的部署步骤。 1.从代码仓库下载代码&#xff0c;比如GitLab&#xff1b; 2.接着是进行打包&#xff0c;比如使用Maven&#xff1b; 3.编写Dockerfile文件&#xff0c;把步骤2产生的包制作成镜像&#xff1b; 4.上传步骤3的镜像到远程…

MySql基础知识及数据查询

目录 第一章 数据库概述 1.为什么要学习数据库&#xff1f; 2.数据库的相关概念 3.ORM(Object Relational Mapping)思想 4.表与表的记录之间存在哪些关联关系 第二章 基本的SELECT语句 1.SQL的分类 2. SQL基本规则 3.导入现有的数据表、表的数据 4.最基本的…

全网最牛,打通接口自动化测试框架详细,一篇足够

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 接口自动化测试开…

原型设计用得最多的是PS吗?该如何画原型?

在产品开发的前期工作中&#xff0c;产品经理或设计师通常需要进行原型设计工作&#xff0c;创建一个可交互和可视化的原型&#xff0c;以更准确地表达他们的设计构思和想法&#xff0c;并为项目顺利递交给开发人员做好准备。进行原型设计时&#xff0c;使用设计工具来画原型图…

计算机常识

文章目录 1. 计算机存储单位换算2. 为什么我买的256内存&#xff0c;实际不足256内存&#xff1f;3. 32位和64位操作系统支持内存 1. 计算机存储单位换算 1Byte 8bit 1KiB 1024 Byte 1MiB 1024 KiB 1048576 Byte 1GiB 1024 MiB 1TiB 1024 GiB 2. 为什么我买的256内存&a…

2023.07.04 homework

到高中前&#xff0c;大多数都还算可以&#xff0c;大多数娃娃主要还是兴趣和学习细节问题

SciencePub学术 | 计算机综合类重点SCIE征稿中

SciencePub学术 刊源推荐: 计算机综合类重点SCI&EI征稿中&#xff01;进展顺利、极速录用。信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 计算机综合重点SCIE 【期刊简介】IF&#xff1a;1.0-1.5&#xff0c;JCR4区&#xff0c;中科院4区&#xf…

Neighborhood Contrastive Learning for Novel Class Discovery (CVPR 2021)

Neighborhood Contrastive Learning for Novel Class Discovery (CVPR 2021) 摘要 在本文中&#xff0c;我们解决了新类发现(NCD)的问题&#xff0c;即给定一个具有已知类的有标签数据集&#xff0c;在一组未标记的样本中揭示新的类。我们利用ncd的特性构建了一个新的框架&am…

setContentView DecorView Activity生命周期

DecorView DecorView是Android中的一个重要类&#xff0c;它是View系统的根View&#xff0c;用于承载应用程序的所有视图层级。下面是一些关于DecorView的信息和相关链接&#xff1a; 1、DecorView是Android系统中的顶级View&#xff0c;它是Window的根视图&#xff0c;负责显…

排序算法解析

常见的排序算法包括以下几种&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a;重复比较相邻的两个元素&#xff0c;将较大的元素逐渐向后移动&#xff0c;直到整个序列有序。 选择排序&#xff08;Selection Sort&#xff09;&#xff1a;从未排序部分选…

Nginx负载均衡、虚拟主机

目录 常用的6种负载均衡算法 轮询算法(round robin)默认 权重(weight) 响应时间(fair) 连接数(least_conn) IP_hash url_hash(第三方) 开发优选&#xff1a;一致性哈希 安装步骤&#xff1a; 虚拟主机 常用的6种负载均衡算法 轮询算法(round robin)默认 轮询方式&a…

MMaction2 使用记录1——训练及测试

目录 训练及测试 Training 在你的 PC上训练 Training 多 GPUs Test 训练及测试 Training 在你的 PC上训练 你可以使用tools/train.py在一台有CPU和可选GPU的机器上训练一个模型。 下面是该脚本的完整用法&#xff1a; python tools/train.py ${CONFIG_FILE} [ARGS] 默…