当前位置: 首页 > 面试经验 >

京东数据开发笔试

优质
小牛编辑
163浏览
2023-03-28

京东数据开发笔试

题型: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


#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;
}

#软件开发2023笔面经##春招##京东##数据开发工程师#
 类似资料: