2026年高职第二学年(大数据技术)Spark数据分析应用测试题及答案_第1页
2026年高职第二学年(大数据技术)Spark数据分析应用测试题及答案_第2页
2026年高职第二学年(大数据技术)Spark数据分析应用测试题及答案_第3页
2026年高职第二学年(大数据技术)Spark数据分析应用测试题及答案_第4页
2026年高职第二学年(大数据技术)Spark数据分析应用测试题及答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

2026年高职第二学年(大数据技术)Spark数据分析应用测试题及答案一、单项选择题(每题2分,共20分。每题只有一个正确答案,请将正确选项字母填入括号内)1.在Spark中,下列哪一项不是RDD的五大特性之一?A.可分区性 B.可序列化 C.可容错性 D.可变性 ( )2.使用SparkSQL读取Parquet文件时,默认采用的压缩编码是:A.GZIP B.LZO C.SNAPPY D.BZIP2 ( )3.在StructuredStreaming中,Complete模式适用于:A.聚合查询且输出到内存表 B.追加查询且输出到Kafka C.更新查询且输出到控制台 D.聚合查询且输出到文件 ( )4.下列关于SparkMLlib中Pipeline的描述,正确的是:A.Pipeline只能包含一个Transformer B.PipelineModel可以持久化到磁盘 C.Pipeline不支持交叉验证 D.Pipeline中的Stage必须全是Estimator ( )5.在Spark3.x中,自适应查询执行(AQE)不会自动优化:A.Join策略选择 B.Reducer个数 C.数据倾斜 D.列式存储格式 ( )6.对DataFrame执行df.selectExpr("split(name,'')[0]asfirst_name"),其返回类型为:A.Array[String] B.String C.Column D.DataFrame ( )7.在SparkonYARN模式下,Executor内存参数由以下哪一项配置?A.spark.executor.cores B.spark.executor.memory C.spark.driver.memory D.spark.yarn.am.memory ( )8.使用GraphFrames进行连通分量计算时,应调用的API是:A.connectedComponents() B.stronglyConnectedComponents() C.labelPropagation() D.pageRank() ( )9.下列哪一项不是SparkStreaming的Receiver-based数据源?A.Kafka(0-8API) B.Flume C.Socket D.Kafka(0-10API) ( )10.在DataFrame中,以下哪个函数可用于计算指定列的偏度(skewness):A.skew() B.skewness() C.skewness_col() D.skew_numeric() ( )二、多项选择题(每题3分,共15分。每题有两个或两个以上正确答案,多选、少选、错选均不得分)11.关于Spark的共享变量,下列说法正确的有:A.Broadcast变量只能在Driver端定义 B.Accumulator支持自定义类型 C.Broadcast变量在Task端可修改 D.Accumulator只能在Action操作后读取 ( )12.在SparkSQL中,以下哪些函数属于窗口函数:A.row_number B.rank C.lag D.collect_list ( )13.下列哪些操作会导致RDD的宽依赖:A.groupByKey B.reduceByKey C.map D.join ( )14.使用MLlib训练LogisticRegressionModel时,可通过哪些参数设置正则化:A.regParam B.elasticNetParam C.maxIter D.tol ( )15.在StructuredStreaming中,以下哪些输出模式支持聚合操作:A.Append B.Update C.Complete D.Memory ( )三、填空题(每空2分,共20分)16.Spark默认的序列化方式是________,在需要更高性能时可切换为________序列化框架。17.在DataFrameAPI中,________函数用于删除包含缺失值的行,________函数用于填充缺失值。18.使用SparkMLlib进行特征抽取时,________算法可将文本转换为词频向量,________算法可进一步降低维度。19.在SparkStreaming中,批次间隔(batchinterval)的单位是________,滑动窗口(windowduration)的单位是________。20.在GraphFrames中,计算三角形数量的API是________,计算最短路径的API是________。21.在Spark3.x中,自适应查询执行通过________参数开启,默认值为________。22.在DataFrame中,________函数用于将多列合并为一列数组,________函数用于将数组列展开为多行。23.在MLlib中,________评估器用于二分类,________评估器用于多分类。24.在StructuredStreaming中,________sink可将结果输出到MySQL,________sink可将结果输出到Kafka。25.在RDD中,________操作会触发Job提交,________操作仅记录转换关系。四、判断题(每题1分,共10分。正确打“√”,错误打“×”)26.SparkSQL的Catalyst优化器只能优化逻辑计划,不能优化物理计划。( )27.在Spark中,DataFrame的join操作默认使用SortMergeJoin。( )28.使用MLlib的StringIndexer时,若遇到未见过的标签,默认会抛出异常。( )29.在StructuredStreaming中,Watermark机制只能用于Append输出模式。( )30.在SparkonKubernetes模式下,ExecutorPod的删除由Driver负责。( )31.在GraphFrames中,motiffinding支持使用DSL表达图模式。( )32.在SparkStreaming中,DStream的transform操作属于Action操作。( )33.在DataFrame中,withColumn函数可用于新增列或替换同名列。( )34.在MLlib中,CrossValidator支持并行化网格搜索。( )35.在Spark3.x中,动态分区裁剪(DPP)需要AQE开启才能生效。( )五、简答题(每题8分,共24分)36.(封闭型)简述SparkSQL中Catalyst优化器的执行流程,并指出其中三个关键组件。37.(开放型)某电商公司使用StructuredStreaming实时统计每10秒各品类销售额,要求输出到MySQL且仅输出有更新的品类。请写出核心代码片段(含Watermark设置、聚合逻辑、输出模式、JDBCsink配置)。38.(封闭型)说明RDD、DataFrame、Dataset三者在编译时类型安全、运行时性能、API易用性三方面的差异,并以表格形式呈现。六、应用题(共31分)39.(计算类,10分)给定销售数据文件sales.parquet,包含字段:order_id,user_id,category,amount,order_date。要求:(1)使用SparkSQL统计2025年Q4(10-12月)各品类销售额占比,保留两位小数;(2)将结果写入Hive表category_ratio,分区字段为year='2025',q='Q4';(3)写出完整代码(含建表语句、插入语句、占比计算逻辑)。40.(分析类,10分)某日志文件access.log格式为:ip,timestamp,url,status,traffic。需求:(1)解析日志为DataFrame;(2)统计每5分钟窗口内状态码大于400的请求占比;(3)找出占比最高的Top3窗口;(4)输出窗口开始时间、结束时间、异常占比。请写出完整代码(含UDF、窗口函数、排序逻辑)。41.(综合类,11分)使用MLlib构建用户流失预测模型:数据:user_churn.csv,字段:user_id,gender,age,total_order,total_amount,last_login_gap,churn(0/1)。任务:(1)完成特征工程:StringIndexer、OneHotEncoder、VectorAssembler、标准化;(2)使用RandomForestClassifier训练,网格搜索最优超参数:maxDepth∈[5,10],numTrees∈[50,100],impurity∈['gini','entropy'];(3)使用CrossValidator,3折交叉验证,评估指标为F1;(4)保存最优模型到HDFS路径/user/model/churn_rf;(5)输出最优参数组合及对应F1值。请写出完整Scala代码(含评估、保存、打印结果)。七、答案与评分标准一、单项选择题1.D 2.C 3.A 4.B 5.D 6.D 7.B 8.A 9.D 10.B二、多项选择题11.ABD 12.ABC 13.ABD 14.AB 15.BC三、填空题16.Java序列化,Kryo17.dropna,fillna18.CountVectorizer,PCA19.毫秒,毫秒20.triangleCount,shortestPaths21.spark.sql.adaptive.enabled,true22.array,explode23.BinaryClassificationEvaluator,MulticlassClassificationEvaluator24.JDBC,Kafka25.Action,Transformation四、判断题26× 27√ 28√ 29× 30√ 31√ 32× 33√ 34√ 35×五、简答题36.关键流程:SQL文本→Parse→UnresolvedLogicalPlan→Analyzer→ResolvedLogicalPlan→Optimizer→OptimizedLogicalPlan→Planner→PhysicalPlan→CostModel→SelectedPhysicalPlan→RDD执行。关键组件:Parser、Analyzer、Optimizer、Planner、CostModel。答出流程给4分,组件各1分,共8分。37.示例代码:```scalavalspark=SparkSession.builder().getOrCreate()importspark.implicits._valds=spark.readStream.format("kafka").option("kafka.bootstrap.servers","broker:9092").option("subscribe","orders").load().selectExpr("CAST(valueASSTRING)asjson").select(from_json($"json",schema).as("data")).select("d.withWatermark("ts","10seconds").groupBy(window("t.agg(sum($"amount").as("sales")).writeStream.outputMode("update").foreachBatch{(batch,_)=>batch.write.format("jdbc").option("url","jdbc:mysql://mysql:3306/retail").option("dbtable","category_sales").option("user","root").option("password","**").option("user","root").option("password","**").mode("append").save()}.start().awaitTermination()```评分:Watermark2分,聚合2分,Update模式2分,JDBCsink2分,共8分。38.表格示例:维度RDDDataFrameDataset编译时类型安全有无有运行时性能低高高API易用性繁琐简洁简洁评分:每行2分,共6分;文字说明2分,共8分。六、应用题39.参考代码:```scalaspark.sql("""CREATETABLEIFNOTEXISTScategory_ratio(categorySTRING,ratioDECIMAL(10,2))PARTITIONEDBY(yearSTRING,qSTRING)""")spark.read.parquet("sales.parquet").createOrReplaceTempView("sales")valdf=spark.sql("""SELECTcategory,ROUND(SUM(amount)100.0/SUM(SUM(amount))OVER(),2)asratioROUND(SUM(amount)100.0/SUM(SUM(amount))OVER(),2)asratioFROMsalesWHEREorder_dateBETWEEN'2025-10-01'AND'2025-12-31'GROUPBYcategory""")df.write.mode("overwrite").insertInto("category_ratio")spark.sql("ALTERTABLEcategory_ratioADDPARTITION(year='2025',q='Q4')")```评分:建表2分,过滤2分,占比计算3分,写入分区3分,共10分。40.参考代码:```scalavalspark=SparkSession.builder().getOrCreate()importspark.implicits._importorg.apache.spark.sql.functions._valdf=spark.read.text("access.log").map(_.split("")).map(a=>(a(0),a(1),a(2),a(3).toInt,a(4).toLong)).toDF("ip","ts","url","status","traffic").withColumn("timestamp",$"ts".cast("timestamp"))valwin=window($"timestamp","5minutes")valratioDF=df.groupBy(win).agg(count("").as("total"),count("").as("total"),sum(when($"status">400,1).otherwise(0)).as("error")).withColumn("error_ratio",round("err.select($"window.start".as("start"),$"window.end".as("end"),$"error_ratio").orderBy(desc("error_ratio")).limit(3)ratioDF.show(false)```评分:解析2分,窗口2分,占比计算3分,排序输出3分,共10分。41.参考代码:```scalavalspark=SparkSession.builder().getOrCreate()importspark.implicits._valdf=spark.read.option("header","true").csv("user_churn.csv")vallabelIndexer=newStringIndexer().setInputCol("gender").setOutputCol("genderIndex")valencoder=newOneHotEncoder().setInputCol("genderIndex").setOutputCol("genderVec")valassembler=newVectorAssembler().setInputCols(Array("genderVec","age","total_order","total_amount","last_login_gap")).setOutputCol("features")valscaler=newStandardScaler().setInputCol("features").setOutputCol("scaledFeatures")valrf=newRandomForestClassifier().setLabelCol("churn").setFeatur

温馨提示

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

最新文档

评论

0/150

提交评论