2025年数据科学与大数据技术能力测评试题及答案_第1页
2025年数据科学与大数据技术能力测评试题及答案_第2页
2025年数据科学与大数据技术能力测评试题及答案_第3页
2025年数据科学与大数据技术能力测评试题及答案_第4页
2025年数据科学与大数据技术能力测评试题及答案_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年数据科学与大数据技术能力测评试题及答案一、单项选择题(每题2分,共30分)1.在Hadoop生态中,负责资源调度与任务管理的组件是A.HDFS  B.YARN  C.MapReduce  D.Hive答案:B解析:YARN(YetAnotherResourceNegotiator)是Hadoop2.x引入的资源管理系统,负责集群资源调度与任务生命周期管理。2.某电商日志文件大小为120GB,采用128MB的HDFS块大小存储,理论上需要占用多少个块(含副本因子3)A.960  B.2880  C.960×3  D.128×3答案:B解析:120GB=120×1024MB,块数=120×1024/128=960;副本因子3,故总块数=960×3=2880。3.在SparkSQL中,下列操作会触发宽依赖的是A.map  B.filter  C.reduceByKey  D.collect答案:C解析:reduceByKey需要按key重新分区,导致shuffle,属于宽依赖;map、filter为窄依赖;collect为行动算子,不区分依赖类型。4.使用Python进行特征缩放时,下列哪种方法对异常值最稳健A.StandardScaler  B.MinMaxScaler  C.RobustScaler  D.Normalizer答案:C解析:RobustScaler基于中位数与IQR,不受极端异常值影响。5.在Kafka中,保证同一分区消息全局有序的最佳实践是A.增加分区数  B.使用自定义分区器随机打散  C.单分区+单消费者组内单线程  D.启用幂等生产者答案:C解析:单分区天然有序;单线程消费避免并发重排。6.某时序数据采用Prophet模型预测,若节假日效应在组件中被设置为multiplicative,则节假日效应与趋势的关系为A.相加  B.相乘  C.对数相加  D.无影响答案:B解析:multiplicative模式下,节假日效应以乘法方式作用于趋势。7.在Flink中,下列窗口类型属于“全局窗口”的是A.TumblingWindow  B.SlidingWindow  C.SessionWindow  D.GlobalWindow答案:D解析:GlobalWindow需自定义触发器,否则永不触发计算。8.使用XGBoost时,为了控制过拟合,应优先调节的超参是A.n_estimators  B.learning_rate  C.max_depth  D.subsample答案:C解析:max_depth直接控制单棵树复杂度,对过拟合影响最显著。9.在Hive中,执行语句`SELECTexplode(array(1,2,3))ASval;`的返回行数为A.0  B.1  C.3  D.报错答案:C解析:explode将数组拆成多行,返回3行。10.在PostgreSQL中,对JSONB字段创建GIN索引的主要目的是A.加速精确匹配  B.加速全文检索  C.加速键存在性与路径查询  D.压缩存储答案:C解析:GIN索引支持jsonb_ops,优化@>、?等操作符。11.在深度学习中,BatchNormalization放在激活函数之前或之后均可,但原论文推荐的位置是A.激活之后  B.激活之前  C.线性层之前  D.无要求答案:B解析:原论文指出BN应置于Wx+b之后、激活之前,使分布更稳定。12.使用Scikit-learn的GridSearchCV时,参数`cv=5`表示A.5折分层交叉验证  B.5次随机划分  C.5次留一法  D.5次bootstrap答案:A解析:cv=5默认StratifiedKFold,分层采样。13.在AWSS3中,以下请求最能利用S3TransferAcceleration的是A.同区域EC2上传大文件  B.跨境低带宽客户端上传大文件  C.下载冷归档对象  D.使用VPCEndpoint答案:B解析:TransferAcceleration利用CloudFront边缘网络,优化跨境上传。14.在Python内存分析中,使用`tracemalloc.take_snapshot()`得到的快照对象可直接调用哪个方法查看前10大内存块A.top_stats  B.statistics  C.compare_to  D.dump答案:B解析:snapshot.statistics('lineno')可排序输出内存占用。15.在Gartner2024年数据治理成熟度模型中,最高级“自适应级”的核心特征为A.元数据集中存储  B.数据质量人工审核  C.AI驱动的自修复策略  D.主数据孤岛答案:C解析:自适应级通过AI自动发现与修复数据问题。二、多项选择题(每题3分,共30分,多选少选均不得分)16.关于HDFS写入流程,下列说法正确的是A.客户端先向NameNode申请block  B.数据流先写入第一个DataNode再管道转发  C.默认副本策略为同机架两副本、异机架一副本  D.写入完成需等待所有副本ACK  E.支持客户端缓存数据到本地磁盘再上传答案:ABCD解析:E错误,HDFS客户端流式写入,不缓存本地磁盘。17.在Spark3.x中,自适应查询执行(AQE)可动态优化A.Join策略  B.Reducer数量  C.分区倾斜处理  D.列式存储格式  E.广播阈值答案:ABCE解析:D为静态存储格式,不可动态改变。18.以下属于列式存储格式的有A.ORC  B.Parquet  C.Avro  D.Arrow  E.JSON答案:ABD解析:Avro为行式;JSON为文本。19.在Python中,使用pandas处理超过内存的数据集,可采用的策略有A.分块读取chunksize  B.使用dask.dataframe  C.转换为PySparkDataFrame  D.使用vaex  E.直接调用pd.read_csv(engine='c')答案:ABCD解析:E无法解决内存不足。20.关于Kafka的exactly-once语义,以下必要条件包括A.启用幂等生产者  B.事务API  C.消费者开启isolation.level=read_committed  D.单分区  E.消费者手动commitSync答案:ABC解析:D非必须;E可为自动提交。21.在深度学习中,以下技术可用于缓解过拟合A.Dropout  B.L2正则  C.EarlyStopping  D.BatchNormalization  E.增加网络深度答案:ABCD解析:E可能加剧过拟合。22.关于数据湖与数据仓库,下列说法正确的是A.数据湖支持schema-on-read  B.数据仓库通常采用星型模型  C.数据湖适合存储原始日志  D.数据仓库不支持半结构化数据  E.数据湖查询性能一定优于数据仓库答案:ABC解析:D错误,现代数仓支持JSON等;E错误,湖查询性能通常低于优化后的仓。23.在PostgreSQL中,使用窗口函数计算移动平均,可结合A.ROWSBETWEEN  B.RANGEBETWEEN  C.GROUPBY  D.ORDERBY  E.PARTITIONBY答案:ABDE解析:C与窗口函数互斥。24.以下属于NoSQL数据库CAP定理中“CP”系统的有A.MongoDB(强一致性)  B.HBase  C.Cassandra(可调一致性)  D.ZooKeeper  E.RedisCluster(哨兵模式)答案:BD解析:A默认最终一致;C可牺牲一致性;E侧重可用。25.在机器学习特征选择中,基于模型的方法包括A.L1正则逻辑回归  B.RandomForestfeature_importances_  C.递归特征消除RFE  D.方差阈值  E.卡方检验答案:ABC解析:D、E为过滤法。三、判断题(每题1分,共10分,正确写“T”,错误写“F”)26.在Spark中,RDD的lineage信息在checkpoint后被清空。答案:T解析:checkpoint将RDD物化到可靠存储,切断lineage。27.HBase的RowKey设计应避免热点,可采用哈希前缀+时间戳倒序。答案:T解析:哈希打散,倒序避免最新数据集中写入单一region。28.使用Python的multiprocessing.Pool时,子进程可共享全局变量无需加锁。答案:F解析:子进程拥有独立内存空间,需使用Manager或共享内存。29.在TensorFlow2.x中,tf.function装饰的函数第一次执行时会生成一张计算图,后续调用直接复用。答案:T解析:图执行模式优势。30.数据治理仅关注数据质量,与合规无关。答案:F解析:合规是核心维度。31.Kafka的consumergroup再均衡期间,所有消费者暂停拉取消息。答案:T解析:rebalancebarrier机制。32.在深度卷积网络中,使用1×1卷积只能改变通道数,不能改变特征图宽高。答案:T解析:1×1卷积无空间聚合。33.使用Scikit-learn的train_test_split时,设置stratify参数可保证分类任务训练集与测试集类别比例一致。答案:T解析:分层采样。34.在Hive中,使用ORC格式并启用bloomfilter可加速like'%abc'查询。答案:F解析:bloomfilter仅支持等值查询。35.数据血缘描述的是数据从产生到消亡的完整生命周期,包括业务含义变化。答案:T解析:广义血缘包含语义。四、填空题(每空2分,共20分)36.在Linux中,查看当前文件夹下各子目录磁盘占用大小的命令是(du-h--max-depth=1)。37.SparkSQL中,将字符串'2025-06-01'转换为日期类型的函数是(to_date)。38.XGBoost的目标函数由(损失函数)与(正则项)两部分组成。39.在Python中,使用(__slots__)魔法变量可以限制类实例动态添加属性并节省内存。40.HBase中,(WAL)机制保证了写操作的原子性与持久性。41.在FlinkCEP库中,模式序列后使用(within)关键字定义事件总时长上限。42.PostgreSQL的(VACUUM)操作用于回收死元组存储空间并更新统计信息。43.在KafkaConnect中,负责将源系统数据导入Kafka的组件角色称为(SourceConnector)。44.使用pandas将DataFrame写入MySQL时,推荐通过(SQLAlchemy)引擎建立连接。45.在深度学习中,(GradientClipping)技术用于解决梯度爆炸问题。五、简答题(每题8分,共40分)46.描述一次完整的MapReduce作业提交过程,包括客户端、ResourceManager、NodeManager、HDFS的交互时序。答案:1)客户端提交job,本地计算inputsplit,生成staging目录并上传jar、split元数据到HDFS;2)客户端向ResourceManager申请applicationID;3)RM选择一台NodeManager启动ApplicationMaster;4)AM向RM申请container列表;5)RM返回可用NM列表;6)AM与NM通信启动YARNChild进程运行Map/Reduce任务;7)任务从HDFS读取split,处理后将中间结果写入本地磁盘;8)Shuffle阶段拉取数据;9)Reduce任务输出到HDFS;10)AM向RM注销并清理临时目录。47.解释Spark中的Catalyst优化器如何进行谓词下推,并给出一段SQL示例说明优化前后执行计划差异。答案:Catalyst将过滤条件尽可能推到数据源端,减少IO。优化前:Scanparquet→Filter(age>30)→Project(name)优化后:DataSourceScanparquet(age>30)→Project(name)示例SQL:SELECTnameFROMuserWHEREage>30;通过explain()可见PushedFilters:[GreaterThan(age,30)]。48.列举三种处理数据倾斜的Spark实战技巧,并给出代码片段。答案:1)加盐+局部聚合:rdd.map(x=>(x._1+"_"+Random.nextInt(5),x._2)).reduceByKey(_+_).map(x=>(x._1.split("_")(0),x._2)).reduceByKey(_+_)2)两阶段聚合:先随机前缀,再去除前缀二次聚合;3)自定义分区:对热点key单独分区,其余哈希。49.说明在PostgreSQL中如何使用BRIN索引加速时间戳范围查询,并给出建表、建索引、查询SQL及执行计划。答案:CREATETABLElog(tstimestamp,msgtext);CREATEINDEXbrin_idxONlogUSINGbrin(ts);EXPLAIN(ANALYZE,BUFFERS)SELECTFROMlogWHEREtsBETWEEN'2025-06-01'AND'2025-06-02';执行计划显示BitmapHeapScan,索引条件使用brin_idx,I/O显著减少。50.给出一种基于Django+Airflow+DBT的轻量级DataOps流水线设计,说明各组件职责与交互接口。答案:Django提供数据门户与元数据管理;Airflow负责调度,每日触发DBTCLI;DBT执行SQL模型转换并回写仓库;Django通过AirflowRESTAPI监听任务状态,前端实时展示;模型血缘由DBTdocs生成,Django嵌入iframe展示。六、编程与综合应用题(共70分)51.(15分)使用PySpark实现WordCount并输出到HDFS,要求:a)过滤长度小于3的单词;b)统计结果按频次降序取前20;c)保存为单个文本文件。答案:frompyspark.sqlimportSparkSessionspark=SparkSession.builder.appName("WordCount2025").getOrCreate()lines=spark.read.text("/data/corpus").rdd.map(lambdar:r[0])counts=lines.flatMap(lambdaline:line.split())\.filter(lambdaw:len(w)>=3)\.map(lambdaw:(w.lower(),1))\.reduceByKey(lambdaa,b:a+b)\.sortBy(lambdax:x[1],ascending=False)\.take(20)spark.sparkContext.parallelize(counts).coalesce(1)\.saveAsTextFile("/output/wc2025")spark.stop()52.(15分)使用Python实现一个自定义Transformer,继承sklearn.base.BaseEstimator,TransformerMixin,完成“对数值列取对数后标准化”,要求兼容Pipeline并支持inverse_transform。答案:importnumpyasnpfromsklearn.baseimportBaseEstimator,TransformerMixinfromsklearn.preprocessingimportStandardScalerclassLogStandardScaler(BaseEstimator,TransformerMixin):def__init__(self):self.scaler=StandardScaler()deffit(self,X,y=None):Xlog=np.log1p(X)self.scaler.fit(Xlog)returnselfdeftransform(self,X):returnself.scaler.transform(np.log1p(X))definverse_transform(self,X):returnnp.expm1(self.scaler.inverse_transform(X))53.(20分)某电商公司2024年12月用户行为日志字段:user_id,item_id,category,behavior,ts。请用SQL计算“用户连续三天及以上有下单行为(behavior='buy')”的用户列表,并给出HiveSQL。答案:WITHbuyAS(SELECTuser_id,TO_DATE(ts)ASdtFROMlogWHEREbehavior='buy'GROUPBYuser_id,TO_DATE(ts)),rankedAS(SELECTuser_id,dt,ROW_NUMBER()OVER(PARTITIONBYuser_idORDERBYdt)ASrnFROMbuy),grpAS(SELECTuser_id,dt,DATE_SUB(dt,rn)ASgrpFROMranked),consecAS(SELECTuser_id,grp,COUNT()AScntFROMgrpGROUPBYuser_id,grpHAVINGcnt>=3)SELECTDISTINCTuser_idFROMconsec;54.(20分)使用TensorFlow2.x构建一个LSTM模型,预测某传感器未来10步的温度值,输入为过去60步单变量序列。要求:a)使用tf.dataAPI构建滑动窗口数据集;b)模型含两层LSTM+Dropout+Dense;c)给出训练、评估、预测代码及结果可视化。答案:importtensorflowastfimportmatplotlib.pyplotasplt构造模拟数据T=10000series=tf.sin(tf.range(T,dtype=tf.float32)/10.0)+tf.random.normal([T],stddev=0.1)defwindow_dataset(series,window_size,batch_size):ds=tf.data.Dataset.from_tensor_slices(series)ds=ds.window(window_size+10,shift=1,drop_remainder=True)ds=ds.flat_map(lambdaw:w.batch(window_size+10))ds=ds.map(lambdaw:(w[:-10],w[-10:]))returnds.batch(batch_size).prefetch(1)window_size=60batch_size=32train_ds=window_dataset(series[:8000],window_size,batch_size)val_ds=window_dataset(series[8000:9000],window_size,batch_size)model=tf.keras.Sequential([tf.keras.layers.LSTM(64,return_sequences=True,input_shape=[None,1]),tf.keras.layers.Dropout(0.2),tf.keras.layers.LSTM(64),tf.keras.layers.Dropout(0.2),tf.keras.layers.Dense(10)])pile(loss='mse',optimizer='adam')history=model.fit(train_ds,epochs=5,validation_data=val_ds)预测sample=series[np.newaxis,:window_size,np.newaxis]pred=model.predict(sample)[0]plt.plot(np.arange(window_size,window_size+10),pred,label='pred')plt.plot(series[window_size:window_size+10],label='true')plt.legend();plt.show()七、案例分析题(共50分)55.(25分)背景:某视频平台每日新增500GB用户观看日志,字段含user_id,video_id,play_duration,ts。需求:1)实时统计过去1分钟各视频播放量(PV)与播放完成率(完播次数/PV);2)每分钟输出一次结果到Redis,key格式“video:{video_id}:1min”,value为JSON;3)给出FlinkSQL+UDTF实现方案,并说明并行度、检查点、Exactly-Once配置。答案:FlinkSQL:CREATETABLEsource_log(user_idSTRING,video_idSTRING,play_durationDOUBLE,tsBIGINT,proc_timeASPROCTIME())WITH('connector'='kafka','topic'='play_log','properties.bootstrap.servers'='kafka:9092','format'='json');CREATETABLEsink_redis(video_idSTRING,pvBIGINT,completion_rateDOUBLE,PRIMARYKEY(video_id)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论