Spark期末考试练习题

这篇具有很好参考价值的文章主要介绍了Spark期末考试练习题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、单选题

1. 下面的端口不是 Spark 自带的服务端口的是___________。

A. 8080 B. 4040 C. 8090 D. 18080

2. 下面的描述不是 RDD 的特点的是___________。

A. 可分区 B. 可序列化 C. 可修改 D. 可持久化

3. 关于广播变量的描述错误的是___________。

A. 任何函数调用 B. 是只读的

C. 存储在各个节点 D. 存储在磁盘或 HDFS 

4. 在启动 pyspark 交互式界面时,采用默认的不指定参数的启动方式属于___________部署方式。

A. standalone B. Spark on mesos

C. Spark on YARN  D. Spark on local

5. pyspark 中,Spark DataFrame 和 Spark SQL 的上下文入口是___________。

A.pyspark.SparkConf B. pyspark.SparkSession 

C. pyspark.SparkContext D. pyspark.StreamingContext

6. 下面的操作中,___________肯定是宽依赖。

A. map B. flatMap C. reduceByKey D. sample

7. Spark 持久化默认的存储级别是___________。

A. MEMORY_ONLY B. MEMORY_ONLY_SER

C. MEMORY_AND_DISK D. MEMORY_AND_DISK_SER

8. DataFrame 和 RDD 的最大的区别是___________。

A. 科学统计支持 B. 多了 schema C. 存储方式不一样 D. 外部数据源支持

9. 与 spark 日志相关的配置文件是___________。

A. spark-env.sh B. log4j.properties C. slaves D. profile

10. spark 机器学习库有两种,其中 ml 库是基于___________数据结构的 API。

A. Spark SQL B. DataFrame C. Spark Streaming D. RDD

11. 关于累加器,下列描述错误的是___________。

A. 支持加法 B. 支持数值类型 C. 可并行 D. 不支持自定义类型 

12. 下面操作属于窄依赖的是___________。

A. join B. filter C. group D. sort

13. pyspark 中,Spark RDD 的上下文入口是___________。

A. pyspark.SparkConf B. pyspark.SparkSession

C. pyspark.SparkContext D. pyspark.StreamingContext

14. pyspark 中,提供广播变量的操作方法的类是___________。

A. pyspark.SparkConf B. pyspark.Accumulator

C. pyspark.RDD D. pyspark.Broadcast

15.需要基于DataFrame创建出临时表,才能使用SQL语句的是?___________。

A.Spark SQL B.DataFrame

C.Spark Streaming D.GraphX

16.以下哪项是由一系列RDD构成的?___________。

A.StreamingContext B.DStream

C.Spark Streaming D.DAG

17.哪个选项提供常用的学习算法,如分类、回归、聚类等算法?___________。

A.Utilities B.Featurization

C.Pipelines D.ML Algorithms

18.下列RDD操作以数组的形式返回数据集的所有元素的是?___________。

A.reduce B.count

C.collect D.first

19.含有自环的图被称为?___________。

A.多重图 B.伪图

C.二分图 D.连通图

20. 在不改变原有 Key 键的基础上,对 Key-Value 结构 RDD 的 Vaule 值进行

一个 map 操作,分区保持不变。这种操作使用的算子是___________。

  1. mapValues B. flatMapValues

C. combineByKey D. reduceByKey

21. Spark SQL 的创建需要依赖于___________。

A. Spark RDD B. spark DataFrame

C. Spark Streaming D. GraphX

22. Spark Streaming 提供的基础抽象是___________,它表示一系列的数据流。

A. StreamingContext B. Discretized Streams

C. Spark Streaming D. RDD

23. Spark 机器学习库 ml 中,提供用于构建,评估和调整 ML Pipelines 的工具是___________。

A. ML Algorithms B. Featurization

C. Pipelines D. Utilities

24. 下列 RDD 算子中,属于 transform 算子的是___________。

A. collect B. reduce

C. foreach D. union

25.下列RDD操作哪一个返回结构的类型不是以数组形式的?___________。

A.first B.top

C.collect D.take

26.Spark的四大组件中不包括下列哪个选项?___________。

A.Spark Streaming B.MLlib

C.Spark R D.GraphX

27.Spark为包含键值对(key-value)类型的RDD提供了一些专有的操作。这些RDD被称为___________。

A.PairRDD B.KeyRDD

C.key-value RDD D.Value RDD

28.Spark主要有几个特点?___________。

A.3 B.4        

C.5 D.6

29.Spark的运行环境搭建不依赖于?___________。

A.Java B.Scala

C.Spark D.Python

30.哪个选项以 RDD 为基础并将数据整理成表格形式?___________。

A.Spark SQL B.DataFrame

C.Spark Streaming D.GraphX

31.下列选项属于DStream输出操作的是?___________。

A.map B.flatMap

C.reduceByKey D.pprint

32. 下列方法可以对 Spark RDD 进行持久化的是___________。

A. persist B. save

C. print D. collect

33.哪个选项是Spark为Python开发者提供的API?___________。

A.PySpark B.Python Spark

C.Scala D.Spark SQL

34.进入web监控页面看到Spark Master at spark://host:port,属于哪种启动模式?___________。

A.local B.mesos

C.yarn D.standalone

35.哪个选项是Spark最基础最核心的部分?___________。

A.Spark Streaming B.Spark SQL

C.RDD D.MLlib

二、填空题

1.mllib是基于RDD的api,ml是基于 DataFrame   的api。

2. 根据代码填空:

sc=SparkContext("spark://10.92.16.21:7077","app")

sc.setLogLevel("WARN")

data =[1,2,3,4,5,6]

dist =sc.paralellize(data,3)

dist2 =rdd.map(lambda x:x*2)

dist2.persist()

dist3 =dist.intersection(dist2)

dist3.collect()

上述代码使用的 Spark 运行模式是___Standalone____;日志级别是____WARN____;变量名为 dist 的这个 RDD 变量有___3__分区(partition);代码 dist2.persist()的作用是__统计文件中字符数量_______;代码dist3.collect()的输出结果是__[(1,2),(2,4),(3,6),(4,8),(5,10),(6,12)] 

3.已知rdd=sc.parallelize([21,17,19,4,15,6,22]),则rrd.take(4)和rrd.top(5)的运行结果分别为 [21,17,19,4] [22,21,19,17,15]         

4.根据代码填空: 

file =sc.parallelize(["1","2","","3","","4","","","5"])

blanks =sc.accumulator(0)

def countblanks(line):

global blanks

if(len(line) ==0):

blanks +=1

return line

file.map(countblanks).collect()

print(blanks.value)

上述代码的目的是__统计一个RDD中有多少元素为空__;使用的共享变量是__accumulator______,该共享变量的变量名是__blanks____;代码 len(line)的含义是__line的长度_____;最后一句代码print(blanks.value)的输出结果是_4_____。

5.RDD算子包括  transform算子    和action算子(执行算子)两种类型。

6. 根据代码填空:

a =sc.textFile(“/root/index.txt”)

b =a.collect()

c =sc.broadcast(b)

d =sc.parallelize([0,0,0,0]).flatMap(lambda x: c.value)

d.collect()

c.unpersist()

上述代码使用的共享变量是__broadcast_____;该共享变量的变量名为_c__;查看该共享变量的值的方法是_c.value__;假设 a.collect()的结果是[3,2,1,0],则代码 d.collect()的输出结果是_[3,2,1,0,3,2,1,0,3,2,1,0,3,2,1,0]___;代码 c.unpersist()的作用是__解除广播变量的持久化操作_______。

  • 简答题
  1. 如何理解 Spark RDD 中的血统概念。

RDD只支持粗粒度转换,即在大量记录上执行单个操作。RDD的血(Lineage)会记录 RDD的元数据信息和转换行为,当该RDD自内部分分区数据丢失时,它可以根据这些信息重新运算并恢复丢失的分区数据。

  1. 请写出 Spark RDD 的四种创建方式。

1).从集合中创建RDD,Spark主要提供了两个方法:parallelize和makeRDD 

2).从外部存储文件创建RDD
3).从其它RDD创建
4).直接创建RDD(new) 
5).基于Nosql创建rdd,如hbase
6).基于s3创建rdd,
7).基于数据流,如socket创建rdd

  1. 简述 Spark Streaming 获取数据的方式,并写出其使用的方法。
  1. socket获取,socketTextStream()
  2. HDFS获取,textFileStream()
  3. Kafka获取,pyspark.streaming.kafka.KafkaUtils
  4. Flume获取,pyspark.streaming.flume.flumeUtils
  1. 简述 Spark 中广播变量基本原理和用途。
  1. 请简述Spark SQL与DataFrame的区别与联系?

区别:RDD是分布式的java对象的集合,但是对象内部结构对于RDD而言却是不可知的。DataFrame是一种以RDD为基础的分布式数据集,提供了详细的结构信息,相当于关系数据库中的一张表

联系1.都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利2、都有惰性机制,在进行创建、转换,如map方法时,不会立即执行,只有在遇到Action才会运算3.都会根据spark的内存情况自动缓存运算,这样即使数据量很大,也不用担心会内存溢出4、三者都有partition的概念5.三者有许多共同的函数,如filter,排序等

6.请简述SparkStreaming的工作原理?

SparkStreaming从数据流接受实时数据流,并将数据分为若干批,然后由spark引擎进行处理,最后批量生成结果流。

7.spark运行模式有哪些,并简要说明每种运行模式?

local模式:spark单机运行,一般用于开发测试。

standalone模式:构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。

spark on Yarn模式:Spark客户端直接连接Yarn,不需要额外构建Spark集群。

spark on Mesos模式:Spark客户端直接连接Mesos,不需要额外构建Spark集群。

8.请列举7Spark RDD action算子,并简述功能。

答:

reduce(f):通过指定的聚合方法对 RDD 中的元素进行聚合操作。

collect():返回一个包含 RDD 所有元素的列表。

count():统计 RDD 中元素的个数。

take(n):获取 RDD 中前 n 个元素的值,返回的结果为列表类型。

first():返回 RDD 中的第一个元素,返回的数据类型为元素类型。

top(n):返回 RDD 中最大的前 n 个元素,返回的结果为列表类型。

saveAsTextFile():将 RDD 中的元素以字符串的格式存储于文件系统中。

foreach(f):遍历 RDD 中的每个元素,同时通过传递自定义的处理函数 f,对 RDD 中的每个元素进行处理。

foreachPartition(f):遍历 RDD 的 每个分区,同时通过传递的 f 对每个分区进行操作。

9.列举7个Spark RDD 的transformation 算子,并简述功能。

答:

map:对RDD中的数据逐条进行映射,可以是类型转换,也可是值转换。

flatMap:先对RDD中的所有元素进行map操作,然后将结果平坦化。

filter:按照指定条件对RDD中的元素进行过滤。

union:将两个RDD求并集,并返回一个新的RDD

intersection:将两个RDD求交集,并返回一个新的RDD,其输出不包含任何重复元素。

sortBy:通过指定keyRDD中的元素进行排序。

mapPartitions:对RDD的每个分区进行map运算。

四、编程题

1. 微博数据分析。

假设有一个数据文件,存储路径为“/home/ubuntu/data/blogInfo.txt”,它包含如下格式的两列数据(其中第一列和第二列都表示用户 ID,每行数据的含义是第一列的用户关注了第二列的用户。数据使用“\t”分隔符隔开):

数据示例:

11111111 12743457

11111111 16386587

11111112 12356363

现使用 pyspark 交互式界面,请使用 Spark RDD 的相关知识编写代码回答下列问题:

(1)将数据读成 RDD 格式。

(2)统计一共有多少个不同的用户 ID。

(3)统计出每个用户的粉丝数量。

(4)将步骤(3)的结果写入到 HDFS 文件中(具体路径为:hdfs://linux01:9000/out/result.txt)。

(1)Lines = sc.textFile(“/home/ubuntu/data/blogInfo.txt”)  
(2)Data = lines.flatMap(lambda x:x.split(“\t”)) 
Result = data.distinct().count() 
(3)Data3 = lines.map(lambda x: x.split(\t)[1]) 
Result3 = data3.map(lambda x: (x,1)).reduceByKey(lambda x,y: x+y).collect() 
(4)Result3.saveAsTextFile(hdfs://linux01:9000/out/result.txt) 

2. 网页流量日志分析。

假设有一个数据文件,存储路径为“/home/ubuntu/data/log.txt”,它包含如下格式的三列数据(其中第一列表示访问时间,第二列表示网页名称,第三列表示访问次数。数据使用“\t”分隔符隔开):

数据示例:

time name num

20200501 baidu 2

20200501 sina 3

20200502 qq 3

20200502 baidu 5

现使用 pyspark 交互式界面,请使用 Spark SQL 的相关知识编写代码回答下列问题:

1)将数据读成 DataFrame 类型,列名分别为“time”“name”“num”

2)将数据注册为 SQL 表,表名为“log”

3)统计同一天里同一网页的总访问量。

4)统计每个网页的总访问量,并按照总访问量降序排序。

(1)data = spark.read.load(“/home/ubuntu/data/log.txt”, format =”csv”, sep=”\t”, header=True) 
(2)data.registerTempTable(“log”) 
(3)spark.sql(“select time,name,sum(num) from log groupby time,name”).show() 
(4)sql = “select name,sum(num) fangwenliang from log groupby name order by fangwenliang desc” 
spark.sql(sql).show()

3. 员工数据分析。

假设有员工数据,存储路径为

“/home/ubuntu/data/employee.json”,其数据格式如下:

{“id”: 1,“name”: “Ella”, “age”: 36}

{“id”: 2,“name”: “Bob”, “age”: 29}

{“id”: 3, “name”: “Jim”, “age”: 28}

假设编程环境为 pyspark 交互式界面,请使用 Spark DataFrame 的相关知识编写代码回答下列问题:

(1)将数据加载为 DataFrame 格式。

(2)查询所有数据,并删除重复的数据。

(3)将数据按照 name 升序排列。

(4)将数据保存为 parquent 格式,仍旧保存在/home/ubuntu/data/目录下。

答: 
(1) employee = spark.read.json(“/home/ubuntu/data/employee.json”) 
(2) employee.select(“id”,”name”,”age”).distinct().show() 
(3) employee.select(“id”,”name”,”age”).orderBy(“name”).show() 
(4) employee.write.save(“/home/ubuntu/data/employee.paquent”) 

4. Spark Streaming 计算。

现通过本地的 9999 端口发送日志流数据,数据格式如下(数据中有三个字段,含义分别为:访问网址,访问流量,访问时间戳。各字段使用“,”隔开):

数据示例:

www.baidu.com,12853,2586213654

假设编程环境为 pyspark 交互式界面,请使用 Spark Streaming 的相关知识编写代码回答下列问题:

(1)创建一个 DStream,监听该端口的数据,时间间隔为 5 秒。(提示:注意导入 streaming 包和上下文的创建)

(2)使用有状态转换 updateStateByKey 统计每个网站的总访问流量。

转发标明出处文章来源地址https://www.toymoban.com/news/detail-424736.html

到了这里,关于Spark期末考试练习题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive考试练习题(参考题解)

      前置环境: 请打开【VMware Workstation Pro】中的【linux1】环境,登录账号【root】密码【root】。  一、搭建MySQL运行环境(25分,每项5分) 1、删除MySQL依赖的libs包 2、安装MySQL的服务器与安装MySQL的客户端 3、登录MySQL并修改MySQL密码 4、给与MySQL的master权限 5、刷新MySQL权限并退出

    2024年02月09日
    浏览(50)
  • 机器学习课后练习题(期末复习题目附答案)

    此为第一章绪论部分 一. 单选题 1. 移动运营商对客户的流失进行预测,可以使用下面哪种机器学习方法比较合适( ) A. 一元线性回归分析 B. 关联方法 C. 聚类算法 D. 多层前馈网络 正确答案: A 2. 下面哪种说法有关机器学习的认识是错误的?( ) A. 高质量的数据、算力和算法对一个机

    2024年02月07日
    浏览(48)
  • 《大数据技术原理与应用(第3版)》期末复习——前两章练习题

    第一章 大数据概述 1【单选题】 人类社会的数据产生方式大致经历了三个阶段, 不包括 : A、运营式系统阶段 B、用户原创内容阶段 C、互联网应用阶段 D、感知式系统阶段 答案:C 数据产生方式经历了三个阶段:运营式系统阶段、用户原创内容阶段、感知式系统阶段 2【单选

    2024年02月07日
    浏览(50)
  • 软件项目管理第4版课后习题-期末复习题型分册版-练习版无答案

    软件项目管理第4版课后习题[附解析]系列文章目录 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 第十三章 第十四章 第十五章 第十六章 期末复习题型分册版-练习版无答案(无大题版) 期末复习题型分册版-有答案版(无大题

    2024年02月11日
    浏览(48)
  • 机器学习期末考试单选题

    1.在NumPy中创建一个元素均为0的数组可以使用( A)函数。 A.zeros( )  B.arange( )  C.linspace( )  D.logspace( ) 2.通常( A)误差作为 泛化误差的近似 。 A.测试    B.训练      C.经验      D.以上都可以 试题解析:解析:一般情况下,我们可以通过实验测试来对学习器的泛化误差

    2024年02月11日
    浏览(35)
  • 【Java练习题汇总】《第一行代码JAVA》综合测试三,汇总Java练习题

    线程的启动方法是( )。 A. run() B. start() C. begin() D. accept() Thread 类提供表示线程优先级的静态常量,代表普通优先级的静态常量是( )。 A. MAX_PRIORITY B. MIN_PRIORITY C. NORMAL_PRIORITY D. NORM_PRIORITY 设置线程优先级的方法是( )。 A. setPriority() B. getPriority() C. getName() D. setName() 下面 ( )方法是

    2024年02月14日
    浏览(50)
  • java -- 练习题

    1.定义一个Person类,要求有姓名和年龄,并且符合JavaBean标准,定义Student类继承Person,定义测试类,创建Student对象,要求创建Student对象的同时,指定Student对象的姓名为\\\"张三\\\",只能指定姓名不许指定年龄 2.按照以下要求定义类 3.键盘录入一个字符串,判断这个字符串是否是对称的字符串

    2023年04月09日
    浏览(38)
  • MySQL练习题(6)

    1、使用mysqldump命令备份数据库中的所有表   2、备份booksDB数据库中的books表 3、使用mysqldump备份booksDB和test数据库 4、使用mysqldump备份服务器中的所有数据库 5、使用mysql命令还原第二题导出的book表 6、进入数据库使用source命令还原第二题导出的book表 1、建立一个utf8编码的数据

    2024年02月16日
    浏览(38)
  • 【练习题】python列表

    1. 基础题 已知一个数字列表,打印列表中所有的奇数 已知一个数字列表,打印列表中所有能被能被3整除但是不能被2整除的数 已知一个数字列表,计算所有偶数的和 已知一个数字列表,统计列表中十位数是 1 的数的个数 已知一个列表,获取列表中下标为奇数是所有元素(从

    2024年02月05日
    浏览(45)
  • python 基础练习题

    目录 1、定义两个变量,交换两个变量【使用多种方式】 2、给定成绩,判断用户成绩的档次 3. 作业:下列哪一项是“4是奇数或-9为正数”的否定( ) 4. 作业:判断一个整数是奇数还是偶数 5. 求矩形的面积和周长 6. 根据天数(从控制台上输入)计算这一年中的周数和剩余的

    2024年04月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包