Spark 数据分析实操考试题库和答案_第1页
Spark 数据分析实操考试题库和答案_第2页
Spark 数据分析实操考试题库和答案_第3页
Spark 数据分析实操考试题库和答案_第4页
Spark 数据分析实操考试题库和答案_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

Spark数据分析实操考试题库和答案考试时间:150分钟总分:100分姓名:__________得分:__________一、单项选择题(每题2分,共30分,每题只有一个正确答案)1.Spark中,用于读取文本文件的核心API是()A.read.text()B.read.csv()C.read.parquet()D.read.json()2.下列哪种Spark算子用于将RDD中的元素按指定规则分组()A.map()B.filter()C.groupBy()D.flatMap()3.SparkSQL中,创建DataFrame的核心方法是()A.createDataFrame()B.newDataFrame()C.DataFrame.builder()D.df.create()4.下列关于SparkCore与SparkSQL的关系,描述正确的是()A.两者相互独立,无关联B.SparkSQL依赖SparkCore,基于RDD构建C.SparkCore依赖SparkSQLD.两者底层实现完全不同5.Spark中,用于将RDD转换为DataFrame的方法是()A.rdd.toDF()B.df.rdd()C.rdd.convertToDF()D.df.convertToRDD()6.下列哪种文件格式不适合Spark批量读取()A.TXTB.ParquetC.ORCD.Avro7.SparkStreaming中,处理实时数据流的核心抽象是()A.RDDB.DataFrameC.DStreamD.Dataset8.下列哪种操作会触发Spark的行动算子()A.map()B.count()C.filter()D.groupByKey()9.Spark中,用于优化DataFrame查询性能的核心手段是()A.创建索引B.减少数据量C.关闭持久化D.降低并行度10.下列关于Spark持久化(cache/persist)的描述,正确的是()A.持久化会将数据存储到磁盘,不占用内存B.persist()可指定存储级别,cache()是默认级别C.持久化后的数据无法删除D.所有算子都能触发持久化11.用SparkSQL查询数据时,若需过滤出年龄大于30的用户,正确的过滤条件是()A.whereage>30B.filterage>30C.whereage>=30D.filter(age>30)12.Spark集群中,Driver的核心作用是()A.存储数据B.执行具体任务C.提交任务、调度资源D.处理实时流数据13.下列哪种方法可用于SparkDataFrame的去重操作()A.distinct()B.unique()C.dropDuplicate()D.removeDuplicate()14.Spark中,处理JSON格式数据的核心API是()A.read.text()B.read.json()C.read.csv()D.read.parquet()15.下列关于Spark与Hadoop的关系,描述正确的是()A.Spark可替代Hadoop,无需依赖Hadoop生态B.Spark可基于HadoopHDFS存储数据C.Hadoop可替代Spark的所有功能D.两者底层架构完全一致二、多项选择题(每题3分,共15分,每题有两个及以上正确答案,多选、少选、错选均不得分)1.Spark支持的数据读取格式包括()A.文本文件B.CSV文件C.Parquet文件D.JSON文件2.下列属于Spark行动算子的有()A.count()B.collect()C.save()D.show()3.SparkSQL的核心功能包括()A.DataFrame操作B.SQL查询C.与Hive集成D.数据分区4.下列关于SparkRDD的描述,正确的有()A.不可变的分布式集合B.支持分区存储C.可通过算子进行转换D.依赖关系可构建DAG5.优化Spark任务执行效率的方法有()A.合理设置并行度B.对热点数据持久化C.优化数据分区D.减少Shuffle操作三、判断题(每题1分,共10分,对的打“√”,错的打“×”)1.Spark是基于内存计算的分布式计算框架,读写速度比MapReduce快。()2.SparkSQL中的DataFrame本质上是带Schema的RDD。()3.map()算子会触发Spark任务的执行,属于行动算子。()4.Spark支持本地模式和集群模式两种部署方式。()5.DataFrame的show()方法可用于展示数据,默认显示前20行。()6.Spark持久化的cache()方法默认将数据存储在内存中。()7.Shuffle操作会增加数据传输开销,应尽量避免。()8.SparkStreaming可处理实时数据流,延迟可达毫秒级。()9.用Spark读取CSV文件时,无需指定分隔符,可自动识别。()10.Spark集群中,Executor负责执行Driver分配的具体任务。()四、简答题(每题10分,共20分)1.简述SparkRDD的核心特性及转换算子与行动算子的区别。2.简述SparkSQL中DataFrame与Dataset的区别及适用场景。五、实操应用题(共25分)需求:现有一个用户行为数据集,存储在HDFS路径/hdfs/spark/data/user_behavior中,包含字段:user_id(用户ID)、action_type(行为类型:click/view/pay)、action_time(行为时间)、goods_id(商品ID)、province(省份),数据格式为CSV,需完成以下Spark实操操作:1.编写Spark代码(Scala语言),读取HDFS上的CSV文件,创建DataFrame,并指定Schema;2.编写SparkSQL语句,统计各省份的用户点击(click)行为总数,按点击量降序排序;3.编写Spark代码,筛选出2024年10月1日至2024年10月7日期间的支付(pay)行为数据,并将结果保存到HDFS路径/hdfs/spark/result/pay_202410中,格式为Parquet;4.简述如何优化该Spark任务的执行性能,避免数据倾斜。参考答案一、单项选择题(每题2分,共30分)1.A2.C3.A4.B5.A6.A7.C8.B9.A10.B11.A12.C13.A14.B15.B二、多项选择题(每题3分,共15分)1.ABCD2.ABCD3.ABCD4.ABCD5.ABCD三、判断题(每题1分,共10分)1.√2.√3.×4.√5.√6.√7.√8.×9.×10.√四、简答题(每题10分,共20分)1.SparkRDD核心特性:①不可变性:RDD创建后无法修改,只能通过算子转换生成新RDD;②分布式存储:数据分散存储在集群节点,支持并行处理;③容错性:基于依赖关系构建DAG,支持故障恢复;④惰性求值:转换算子延迟执行,直到行动算子触发。转换算子与行动算子区别:①执行时机:转换算子(map、filter等)惰性求值,不触发任务执行;行动算子(count、collect等)立即触发任务执行,返回结果。②返回值:转换算子返回新RDD,行动算子返回非RDD类型(数值、集合等)。2.DataFrame与Dataset区别:①类型安全:Dataset是类型安全的,DataFrame无类型安全检查;②API风格:Dataset支持面向对象编程,DataFrame支持SQL风格操作;③适用场景:DataFrame适合结构化数据的快速查询、ETL操作;Dataset适合需要类型安全、复杂业务逻辑的场景。五、实操应用题(共25分)1.读取CSV文件创建DataFrame代码(5分):importorg.apache.spark.sql.SparkSessionobjectReadCSV{defmain(args:Array[String]):Unit={valspark=SparkSession.builder().appName("ReadUserBehavior").master("local[*]")//集群模式可删除该配置.getOrCreate()//导入隐式转换importspark.implicits._//定义SchemavaluserBehaviorSchema=StructType(Seq(StructField("user_id",IntegerType,nullable=false),StructField("action_type",StringType,nullable=false),StructField("action_time",TimestampType,nullable=false),StructField("goods_id",IntegerType,nullable=false),StructField("province",StringType,nullable=false)))//读取CSV文件创建DataFramevaluserBehaviorDF=spark.read.schema(userBehaviorSchema).option("header","true")//若CSV有表头,开启该配置.csv("/hdfs/spark/data/user_behavior")//显示数据验证userBehaviorDF.show(10)spark.stop()}}2.SparkSQL统计语句(6分):userBehaviorDF.createOrReplaceTempView("user_behavior")valresultDF=spark.sql("""SELECTprovince,COUNT(*)ASclick_countFROMuser_behaviorWHEREaction_type='click'GROUPBYprovinceORDERBYclick_countDESC""")resultDF.show()3.筛选支付数据并保存代码(7分):importorg.apache.spark.sql.functions._valpayDF=userBehaviorDF.filter(col("action_type")==="pay").filter(col("action_time").between("2024-10-01","2024-10-07"))//保存到HDFS,格式为ParquetpayDF.write.mode("overwrite").parquet("/hdfs/spark/result/pay_202410")4.性能优化方

温馨提示

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

评论

0/150

提交评论