题型:20道选择题,3道编程题,其中第一题写SQL
笔试太难了?可以私信我
有些AC有些通过率还行,助攻已经进面了
选择题:
下列排序中需要额外辅助空间的期望值最大的是()
堆排序
希尔排序
快速排序
冒泡排序
双十一快到了,某服装厂为了赶制订单,加班加点使用设备生产衣服。如果某一设备在时间长度为的时间内发生故隙的次数服从分布N(t)~P(λt) (H松分布),求该设备在无故障工作8小时后再次无故障工作8小时的概率?
e^-8λ
e^-4λ
e^-24λ
e^-16λ
Hive是上层基于SQL语―,底层基于 Hadoop 的大数据处理平台,下面关于Hive架构组成的说法中错误的是()
编译器 Compile 解析 Sql,生成执行计划,执行计划的各个 Map、Reduce 操作节点组成一个DAG图
驱动器 Driver 创建Session,接收客户端请求,并将请求发送到编译器Compile
Metastore 用于存储 Hive表和分区的数据元信息
执行引擎 Exection Engine执行 Compile 生成的执行计划,底层交由Hadoop 执行
以下Python3代码的输出是什么()
list1 = [1,2,3,4]
list2 =[2,4, 5,6]
list3 =[2,6,7,8]
result = list()
result.extend(i for i in list1 if i not in
(list2 + list3) and i not in result)
result.extend(i for i in list2 if i not in
(list1 + list3) and i not in result)
result.extend(i for i in list3 if i not in
(list1 + list2) and i not in result)
print(result)
[1,7,8]
[1,3,5,7,8]
error
[1,2,4,7,8]
客户端向YARN 集群提交一个任务,则该任务在YARN上的执行流程顺序是()
(1)ResourceManager为这个应用程序分配一个Container,并与对应的NodeManager通信,在这个Container中启动 ApplicationMaster。
(2)任务启动后,各个任务会向 ApplicationMaster报告自己的状态和进度,以便任务失败时,ApplicationMaster可以重新申请资源重启任务。
(3)用户向YARN 提交—个任务,并指定ApplicationMaster程序。
(4) ApplicationMaster向ResourceManager注册,然后拆分任务分配给内部,为各个拆分的任务申请资源,然后监控这些任务的运行,直到结束.
(5)ApplicationMaster采用轮询的方式向 ResourceManager申请资源。
(6)任务完成后,ApplicationMaster向 ResourceManager注销并关闭自己
(7)ApplicationMaster申请到资源后,与对应的 NodeManager通信,以启动任务。
(3)(1)(4)(5)(7)(2)(6)
(1)(4)(3)(7)(5)(6)(2)
(2)(3)(4)(5)(1)(6)(7)
(5)(4)(1)(7)(3)(2)(6)
如果要计算xxx.txt文件的单词个数,可以使用()命令。
wc -1 xxx.txt
wc -w xxx.txt
wc -L xxx.txt
wc -c xxx.txt
已知二维随机变量(X,Y)的联合概率密度为f(x,y)=2x+y 0<x≤1,0≤y<1; f(x,y)=0 else,求数学期望E(X+Y)=()
1/4
7/3
7/4
5/4
发布订阅是一种应用程序(系统)之间通讯,传递数据的技术手段,可以实现应用(系统)之间的解耦合。下列关于Redis发布订阅的说法,不正确的是()
发布订阅也叫生产者消费者模式,是实现消息队列的一种方式
Redis客户端可以订阅任意数量的频道
Redis发布订阅在客户端离线情况下也可以使用
subscribe channel 命令订阅给定的一个或多个频道的信息
设有序列1,2,3,4,5依次入栈,则不可能的出栈序列为
5,4,3,2,1
1,2,3,4,5
3,1,2,5,4
1,2,4,3,5
在Spark中,以下哪个算子会触发Shuffle操作(()
filter
map
foreach
repartiion
在Hive的t_user表中有如下数据:
name hobby
Bob swimming
Bob dance
Bob sing
想要得到结果:Bob swimming,dance,sing,则下面哪个选项符合要求0)
select name, concat(',', hobby) from t user
group by name
select name, group_concat(',', hobby) from
t_user group by name
select name,concat ws(',', collect list(hobby)) from t_user group by name
select name, concat ws (',', hobby) from
t_user group by name
执行以下程序,输出结果为()
def fn(n):
return 1 ifn< 2 else n* fn(n - 1)
print(list(map(fn, filter(lambda n:n%
3,range(6)))))
[1,6,720]
[1,6]
[1,2, 24, 120]
[0,2,24,120]
设有二维数组A[5][4]按照列优先顺序存储,每个元素占2个存储单元,且第一个元素A[0][0]的存储地址为100,则元素A[2][3]的存储地址为()
133
132
135
134
iter函数可以构建一个循环器,然后用next来导出数值,阅读下面一个例子,最后print(x)的输出为()
mytuple=("apple","banana",“cherry")
myit = iter(mytuple)
x=[]
for _ in range(len(mytuple)):
fruit =
next(myit)
if fruit
==“cherry":
break
x.append(fruit)
print(x)
['apple', 'banana']
['apple', 'banana', 'cherry']
['apple', 'cherry']
['apple']
在Python3中以下程序的运行结果为()
def max_len(lists):
return
max(lists,key=lambda x: 1en(x))
lists = [[1, 2,3],[4,5,6,7],[8]]
print(max_len(lists))
[1,2,3]
4
[4,5,6,7]
[[1,2,3],[4,5,6,7],[8]]
现有7个关键词的序列为{17,13,9,54,74,21,3}将其填装到表长TableSize =14的散列表中,设散列函数为H(key)= key mod 13,求填装因子a为()
0.6
0.5
1
0.8
根据下面的 Spark 代码块,推断出最后的打印结果为O
已知一个游戏记录表:
games(
play_date bigint,
user_ id string,
age int,
game_id string,play_time int)
数据集合为:
val games = List(
"20220123,u1,3e,a,4”,
"20220123,u1, 3e,b,10",
"20220123,u1,3e,a,2",
"20220123,u2,27,c,1",
"20220122,u3,33,d,5",
"20220123,u2,27,a,2")
val games_res:(Int,Int,
Int)=sc.parallelize(games, 1).map(e=>{
val temp=e.split("".")
(temp(1)+”,
"+temp(2),temp(4).toInt)).combineByKey(
(c:Int) =>e+c,
(c:Int, v: Int)=>C+V,(c1: Int, c2:Int)
=>c1+c2).repartition(1).map(e=>i
val userInfo= e._1.split(",")
(userInfo(0),userInfo(1).toInt,e._2))).aggregate(0,e,0)(
(c:(Int,Int,Int), v: (String,Int,Int))
=>(c._1+1,c._2+v._2,c._3+v._3),(c: (Int,Int,Int),
v:(Int,Int,Int)) =>(c._1+v._1,c._2+v._2,c._3+v._3)
print(games_res._1,games_res._2/games_res._1,games_res._3/games_res._1)
(3,30,7)
(3,27,8)
(3,33,8)
(3,30,8)
当YARN 集群处于HA模式下时,有的角色发生故障,则下列选项中说法正确的是
若NodeManager 发生故障,ResourceManager会移除这个节点,在其他的 NodeManager 重启并继续执行任务
若 ResourceManager发生故障,需手动切换另一台 ResourceManager为 active 状态元
若 Container发生故障,NodeManager可以分配其他的 container 继续执行
若 Application Master发生故障,则任务自动失败
编程题:
题目1:SQL,题目内容较多,算是比较简单的,就不放这了
题目2:AC通过
小红拿到了n个物品,每个物品的品质为ai。这n个物品中至少有一个真品。
已知所有真品的品质都是相同的,但赝品的品质比真品低。小红想知道,
这n个物品中最多有多少赝品。
输入描述:
第一行输入一个正整数n,代表小红拿到的物品数量。
第二行输入n个正整数ai,代表每个物品的品质。
1<=n<=10^5
1<=ai<=10^9
示例1
输入
1
5
输出
0
示例2
输入
5
2 3 1 3 3
输出
2
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a.begin(), a.end());
int cnt = 0;
for (int i = 0; i < n; i++) {
if (a[i] < a[n-1]) {
cnt++;
}
}
cout << cnt << endl;
return 0;
}
题目3:通过率45%
题目3描述
小红拿到了一个正整数n,她希望找到一个最小因子p,满足p*p>n。你能帮帮她吗?
一共有t组询问。
输入描述:
第一行输入一个正整数t,代表询问的次数。
接下来的t行,每行输入一个正整数n。
1<=t<=10
2<=n<=10^12
输出描述:
满足条件的最小因子
示例1
输入
2
36
37
输出
9
37
#软件开发2023笔面经##春招##京东##数据开发工程师#
#include <iostream>
#include <vector>
using namespace std;
int findDivisors(int n) {
for (int i = 1; i < n; i++) {
if (n % i == 0) {
if(i*i>n)
return i;
}
}
return n;
}
int main() {
int t;
cin >> t;
vector<int> arr;
for(int i=0;i<t;i++){
int a;
cin>>a;
arr.push_back(a);
}
for(int i=0;i<t;i++)
{
cout<<findDivisors(arr[i])<<endl;
}
return 0;
}