Java 程序设计任务驱动教程任务测验-项目13任务3_第1页
Java 程序设计任务驱动教程任务测验-项目13任务3_第2页
Java 程序设计任务驱动教程任务测验-项目13任务3_第3页
Java 程序设计任务驱动教程任务测验-项目13任务3_第4页
Java 程序设计任务驱动教程任务测验-项目13任务3_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

项目十三任务三《大数据技术的应用-商品销售数据分析》任务小测验时长:30分钟满分:50分一、单选题(10题,每题2分,共20分)基础题(7题)1.下列关于Spark的核心特性,说法正确的是()【基础题】基于磁盘计算,速度比MapReduce慢核心特性为内存计算,支持分布式数据处理仅支持Scala语言开发,不提供JavaAPID.只能运行在集群环境,不支持本地运行2.Spark程序的唯一入口类是()【基础题】A.SparkContextB.SparkSessionC.DataFrameD.Dataset3.读取CSV文件时,若要识别文件的标题行,需设置的核心参数是()【基础题】A.option("title","true")B.option("header","true")C.option("row","true")D.option("col","true")4.将SparkDataFrame注册为临时视图,供SQL分析使用的方法是()【基础题】A.createTempView()B.createOrReplaceTempView()C.createTable()D.registerView()5.要实现按顾客ID分组统计总消费金额,正确的SQL聚合函数是()【基础题】A.COUNT(amount)B.AVG(amount)C.SUM(amount)D.MAX(amount)6.Spark中用于展示DataFrame数据的方法是()【基础题】A.print()B.show()C.println()D.display()7.输出CSV结果时,为避免“输出目录已存在”的报错,需设置的模式是()【基础题】A.mode("append")B.mode("overwrite")C.mode("ignore")D.mode("error")拓展题(3题)1.【全国计算机等级考试Java二级原题改编】下列代码片段中,能正确创建SparkSession本地运行实例的是()【拓展题】A.SparkSessionspark=SparkSession.builder().appName("SaleAnalysis").master("local[*]").getOrCreate();B.SparkSessionspark=newSparkSession();spark.setAppName("SaleAnalysis");spark.setMaster("local");C.SparkSessionspark=SparkSession.builder().name("SaleAnalysis").local("*").build();D.SparkSessionspark=SparkSession.create().appName("SaleAnalysis").master("cluster");2.下列关于SparkDataFrame的说法,错误的是()【拓展题】DataFrame是分布式的结构化数据集合,类似关系型数据库的表DataFrame的底层是Dataset<Row>,支持JavaAPI操作DataFrame只能通过CSV文件创建,无法通过其他数据源生成D.DataFrame注册为临时视图后,可通过标准SQL语句进行分析3.要将Spark分析结果以CSV格式输出并包含标题行,正确的代码片段是()【拓展题】A.df.write().csv("./result");B.df.write().option("header","true").csv("./result");C.df.write().mode("overwrite").csv("./result");D.df.write().mode("overwrite").option("header","true").csv("./result");二、多选题(3题,每题3分,共9分)基础题(2题)下列属于大数据分析核心流程的有()【基础题】A.数据采集 B.数据存储 C.数据处理 D.数据可视化2.下列关于Spark环境配置的说法,正确的有()【基础题】A.需下载适配Hadoop的Spark安装包B.需将Spark解压目录中jars文件夹的所有文件复制到项目lib目录C.需在IDEA中导入lib目录下的所有Spark依赖包D.无需配置任何环境变量,直接导入依赖包即可拓展题(1题)【全国计算机等级考试Java二级原题改编】要实现商品销售数据的“按顾客ID分组统计总消费并按消费金额降序排序”,正确的SQL语句要素有()【拓展题】GROUPBYcustomer_idSUM(amount)astotal_amountORDERBYtotal_amountDESCD.HAVINGtotal_amount>0三、判断题(5题,每题2分,共10分)基础题(3题)1.Spark是一款快速通用的分布式计算引擎,核心优势是内存计算。()【基础题】2.临时视图是将SparkDataFrame映射为临时表,可通过标准SQL语句进行分析。()【基础题】3.Spark输出CSV格式结果时,会生成一个目录,而非单个文件。()【基础题】拓展题(2题)1.master("local[*]")表示Spark使用本地单个核心运行,适合处理海量数据。()【拓展题】2.Spark会自动识别CSV文件的数据类型,无需手动指定字段类型即可实现聚合计算。()【拓展题】四、编程题(2题,每题10.5分,共21分)基础题(1题)编写一个超市商品销售数据基础分析程序,使用SparkJavaAPI实现,具体要求:【基础题】①环境配置:正确导入Spark所有依赖包,准备销售CSV数据(src/data/sale.csv,含标题行:customer_id,product_id,amount,purchase_date);②Spark初始化:创建SparkSession实例,应用名设为“BasicSaleAnalysis”,本地运行模式;③数据读取:读取sale.csv文件,识别标题行,预览前5行数据;④SQL分析:注册临时视图purchases,编写SQL按customer_id分组,统计总消费金额,按顾客ID升序排序;⑤结果展示:完整展示分析结果;⑥结果输出:将分析结果输出到src/data/result_basic目录,覆盖已有目录,输出文件包含标题行;⑦资源释放:关闭SparkSession,添加必要注释,代码规范。拓展题(1题)【全国计算机等级考试Java二级原题改编】编写一个超市商品销售数据高级分析程序,具体要求:【拓展题】①环境配置:正确配置Spark环境,读取销售CSV数据(src/data/sale_advanced.csv,含多顾客多笔销售记录,存在少量重复记录);②Spark初始化:创建SparkSession实例,应用名设为“AdvancedSaleAnalysis”,本地运行模式;③数据处理:读取CSV文件并识别标题行,预览前10行数据;数据清洗:去除销售数据中的重复记录;注册临时视图purchases_advanced;④高级SQL分析:编写SQL实现按customer_id分组,统计总消费金额和消费次数,添加别名total_amount和buy_count,按总消费金额降序排序;⑤结果展示:展示分析结果;⑥结果输出:将分析结果输出到src/data/result_advanced目录,覆盖已有目录,输出文件包含标题行;⑦异常处理:捕获文件路径错误、Spark初始化失败等异常,打印错误信息;⑧资源释放:关闭SparkSession,代码逻辑分层,注释清晰。参考答案一、单选题1.B2.B3.B4.B5.C6.B7.B8.A9.C10.D二、多选题1.ABCD2.ABC3.ABC三、判断题1.√2.√3.√4.×5.√四、编程题基础题参考代码(超市商品销售数据基础分析程序)1.importorg.apache.spark.sql.Dataset;importorg.apache.spark.sql.Row;importorg.apache.spark.sql.SparkSession;/***超市商品销售数据基础分析程序*/publicclassBasicSaleAnalysis{publicstaticvoidmain(String[]args){//声明SparkSession实例SparkSessionspark=null;try{//1.初始化SparkSession,本地运行模式spark=SparkSession.builder().appName("BasicSaleAnalysis").master("local[*]").getOrCreate();System.out.println("SparkSession初始化成功!");//2.读取CSV销售数据,识别标题行StringinputPath="src/data/sale.csv";Dataset<Row>df=spark.read().option("header","true").csv(inputPath);System.out.println("销售数据读取成功,前5行数据预览:");df.show(5);//3.将DataFrame注册为临时视图df.createOrReplaceTempView("purchases");//4.编写SQL实现分组聚合分析Stringsql="SELECTcustomer_id,SUM(amount)astotal_amount"+"FROMpurchases"+"GROUPBYcustomer_id"+"ORDERBYcustomer_idASC";Dataset<Row>analysisResult=spark.sql(sql);//5.展示分析结果System.out.println("\n=====各顾客总消费金额分析结果=====");analysisResult.show();//6.输出分析结果到CSV,覆盖已有目录,包含标题行StringoutputPath="src/data/result_basic";analysisResult.write().mode("overwrite").option("header","true").csv(outputPath);System.out.println("\n分析结果已保存到:"+outputPath);}catch(Exceptione){System.out.println("程序执行异常:"+e.getMessage());e.printStackTrace();}finally{//7.关闭SparkSession,释放资源if(spark!=null){spark.stop();System.out.println("\nSparkSession已关闭,资源释放完成!");}}}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000importorg.apache.spark.sql.Dataset;importorg.apache.spark.sql.Row;importorg.apache.spark.sql.SparkSession;/***超市商品销售数据高级分析程序*/publicclassAdvancedSaleAnalysis{publicstaticvoidmain(String[]args){SparkSessionspark=null;try{//1.初始化SparkSessionspark=SparkSession.builder().appName("AdvancedSaleAnalysis").master("local[*]").getOrCreate();System.out.println("SparkSession初始化成功!");//2.读取CSV销售数据,识别标题行StringinputPath="src/data/sale_advanced.csv";Dataset<Row>df=spark.read().option("header","true").csv(inputPath);System.out.println("原始销售数据读取成功,前10行数据预览:");df.show(10);//3.数据清洗:去除重复记录Dataset<Row>cleanDf=df.distinct();System.out.println("\n数据清洗完成,去重后数据量:"+cleanDf.count());//4.注册临时视图cleanDf.createOrReplaceTempView("purchases_advanced");//5.高级SQL分析:统计总消费和消费次数,按总消费降序排序Stringsql="SELECTcustomer_id,"+"SUM(amount)astotal_amount,"+"COUNT(*)asbuy_count"+"FROMpurchases_advanced"+"GROUPBYcustomer_id"+"ORDERBYtotal_amountDESC";Dataset<Row>advancedResult=spark.sql(sql);//6.展示高级分析结果System.out.println("\n=====顾客消费高级分析结果(总消费+消费次数)=====");advancedResult.show();//7.输出分析结果

温馨提示

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

评论

0/150

提交评论