【Spark】【复习】Spark入门考前概念相关题复习
Spark考前概念相关题复习
AUthor:萌狼蓝天
哔哩哔哩:萌狼蓝天
博客园:我的文章 - 萌狼蓝天
选择题
Hadoop
1.HADOOP的三大核心组件
- HDFS分布式文件系统
- YARN作业调度 和 集群资源管理的框架
- MAPREDUCE 分布式运算编程框架
2.hadoop完全分布式集群主节点上的角色有
- NameNode
- ResourceManager
- SecondaryNameNode7
3.hadoop的集群包括HDFS、YARN
4.YARN集群的角色包括ResourceManager、NodeManager
5.HDFS集群的角色包括NameNode、DataNode、SecondaryNameNode7
Spark
1.Spark是快速、分布式、可扩展、容错的集群计算框架
2.Spark是基于内存计算的大数据分布式计算框架
3.大数据的“4V”特性指的是:
- Volume数据体量巨大(传统技术有瓶颈)
- Variety数据类型繁多
- value价值密度低
- Velocity处理速度快
4.Spark的特点
- 快速
- 易用性
- 通用性
- 随处运行
- 代码简洁
5.SPARK完全分布式集群,主节点上的角色有Master
6.SPARK集群的角色包括Master、Worker
7.SPARK的安装模式有
- 本地模式
- 伪分布式
- 完全分布式
- HA高可用模式
scala
Scala是Scalable Language的简写,由联邦理工学院洛桑(EPFL)的Martin Odersky于2001年开始设计的一门多范式(规范 模式 ,编程方式)的编程语言。
Scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象(完全面向对象)和函数式编程的最佳特性结合在一起的静态类型编程语言。
- Scala 类java语言 源码(.scala)要编译成(.class)文件
- 简洁、优雅、类型安全
- Spark的兴起带动了scala的发展
1.关于scala
- Scala是可扩展的
- Scala是纯正的面向对象语言
- Scala是函数式编程语言
- Scala可以和Java无缝操作
- Scala是静态类型的语言
- scala的目标运行环境是JVM
2.关于Scala 语言中数组
- 数组中某个指定的元素可通过索引来访问
- 数组的第一个元素索引为0
- Scala中提供了变长数组类型,是ArrayBuffer
- 变长数组的长度是可变的
3.scala函数的说法正确的是
- 函数声明方式为: def 函数名(参数列表):[返回类型]=
- 函数的返回类型在可推断出来的情况下可以省略
4.属于Scala 特性
- 命令式编程
- 函数式编程
- 静态类型
5.不可扩展性不属于Scala 特性
6.Scala属于多范式编程语言
7.Scala编译后的文件是以.class结尾
8.辅助构造函数名为this
9.继承关键字为extends
10.类外隐藏属性或方法关键字(私有)private
11.抽象类的关键字abstract
12.重写父类方法关键字override
13.样例类关键字case
14.单例对象关键字object
15.定义类关键字class
16.Scala应用场景
- 大数据技术Spark、Flink等
- 数据计算
- 提供面向Web服务,可以和Java等相同的spring Web应用
RDD
1.关于RDD
- 它是集群节点上的不可改变的、已分区的集合对象
- 可通过并行转换的方式来创建
- 可以控制存储级别(内存、磁盘等)
- 必须是可序列化的
- 是 弹性分布式数据集
(阿里云提供)RDD的特点:
- 它是在集群节点上的不可变的、已分区的集合对象。
- 通过并行转换的方式来创建如(map, filter, join, etc)。
- 失败自动重建。
- 可以控制存储级别(内存、磁盘等)来进行重用。
- 必须是可序列化的。
- 是静态类型的。
2.使用saveAsTextFile存储数据到HDFS.要求数据类型为RDD
综合
使用 Scala编写 Spark WordCount程序时需要调用的类
- org.apache.spark.SparkConf
- org.apache.spark.SparkContext
判断题
1.大数据(big data),IT行业术语,指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合(正确)
2.数组可以包含不同类型的元素(错误)
3.Scala单例对象不可以带参数,而类可以。(正确)
4.数组是不可变的(正确)
5.RDD主要有两大类操作,分别为转换(transformations)和操作(Actions)。所有的转换操作都是懒惰(lazy)操作,只有等到Actions操作时才会真正启动计算过程进行计算。(正确)
6.parallelize[T: ClassTag](seq: Seq[T],numSlices: Int = defaultParallelism): RDD[T],该函数的第二个参数是默认参数,默认值为defaultParallelism(正确)
能力考察
第四章能力考察
符合Scala编程规范?(C)
① String s = "Spark";
②"abc" .contains("a");
③"123".equals(123);
④ SparkConf sc = new SparkContext(conf)
A ①②
B ①④
C ②③
D ②④
【答案:C】
出字符串str的后4位作为输出?(C)
A str.get(str.length-4,str.length)
B str.tail(str.length-4,str.length)
C str.substring(str.length - 4, str.length)
D str.cat(str.length -4,str.length)
【答案:C】
使用spark-submit如何指定在本地运行?( A)
A --master = local
B --class = local
C --executor-memory = 4G
D --master = root
【答案:A】
Spark支持的分布式部署方式中哪个是错误的?(D )
A Standalone
B Spark on Mesos
C Spark on YARN
D Spark on Local
【答案:D】
以下哪个不是 spark-submit的指定参数?(D )
A --master
B --class
C --deploy-mode
D --url
【答案:D】
第三章能力考察
以下哪种方法可以得到RDD(('a',1))?(D )
A RDD(('a', 1),('b',1)) union RDD(('a',2),('b',1))
B RDD(('a', 1),('b',1))join RDD(('a',2),('b',1))
C RDD(('a', 1),('b',1)) intersection RDD(('a',2),('b',1))
D RDD(('a', 1),('b',1)) subtract(('a',2),('b',1))
【答案:D】
下面哪个不是 RDD的特点?(C )
A 可分区
B 可序列化
C 可修改
D 可持久化
【答案:C】
下面哪一组全部都是转化操作?C
A map、take、reduceByKey
B map、 filter 、collect
C map、zip 、reduceByKey
D join、map、take
【答案:C】
将RDD(('a',1).('b,1)) ( ) RDD(('a',1).( 'd',1))连接,得到 RDD('a',(1,Some(1)),('b',(1,None)),( )填写以下哪种连接方法?C
A fullOuterJoin
B join
C leftOuterJoin
D rightOuterJoin
【答案:C】
以下哪组RDD 可以使用zip( )合并成键值对 RDD?( B)
A makeRDD(1 to 5,2), makeRDD(1 to 10,2)
B makeRDD(1 to 5,2),makeRDD(1 to 5,2)
C makeRDD(1 to 5,3), makeRDD(1 to 5,2)
D makeRDD(1 to 5,2),makeRDD(I to 10,4)
【答案:B】
使用union和 join连接RDD(('a',1),( 'b',1))和RDD(('a',1),( 'b',1))的结果分别为哪项?(C)
A 都为(('a',1),('b',1),( 'a',1),('b',1))
B 都为(('a',(1,1)),( 'b',(1,1)))
C union为(('a',1),('b',1), ( 'a',1),( 'b',1)), join为(('a',(1,1),('b'.(1,1))
D union为(('a',(1,1),('b',(1,1))), join为(('a',1),('b',1), ( 'a',1),( 'b',1))
【答案:C】
常用创建 RDD的方法有哪些?ABC
A makeRDD
B parallelize
C textFile
D testFile
【答案:ABC】
第二章能力考察
以下关于scala列表的说法正确的是(ABD)
A val list=List(1,2,3)或 val list=1::3::2::Nil可以定义一个列表
B List(1,2,3):::List(1,2,4)的结果是List(1,2,3,1,2,4)
C val list=List(3,4,5)可以通过索引1,即list(1)查询第二个位置的元素,也可以通过list(1)=2更新该元素
D 列表List长度一旦定义则不可改变
【答案:ABD】
以下关于scala列表的说法正确的是(ABDE)
A val list=List(1,2,3)或 val list=1::3::2::Nil可以定义一个列表
B List(1,2,3):::List(1,2,4)的结果是List(1,2,3,1,2,4)
C val list=List(3,4,5)可以通过索引1,即list(1)查询第二个位置的元素,也可以通过list(1)=2更新该元素
D 列表List长度一旦定义则不可改变
E val list=ListBuffer(3,4,5)可以通过索引1,即list(1)查询第二个位置的元素,也可以通过list(1)=2更新该元素
【答案:ABDE】
以下哪个是scala函数的类型(CD)
A Int
B Any
C Int=>String
D (Double,Int)=>Int
【答案:CD】
以下定义矩形体积的函数及调用正确的是(ABCD)
A def vju(chang:Int)={ (kuan:Int)=>{ gao:Int=>chang*kuan*gao } } vju(3)(4)(5)
B def vju(chang:Int):Int=>(Int=>Int)={ def vjuchang(kuan:Int):Int=>Int={ def vjuck(gao:Int):Int=chang*kuan*gao vjuck } vjuchang } vju(3)(4)(5)
C val vju=(chang:Int)=>{ (kuan:Int,gao:Int)=>chang*kuan*gao } vju(3)(4,5)
D val vju=(chang:Int,kuan:Int,gao:Int)=>chang*kuan*gao vju(3,4,5)
【答案:ABCD】
以下scala函数的说法正确的是(AD)
A 函数声明方式为: def 函数名(参数列表):[返回类型]={函数体}
B scala函数用return关键字来指明返回值,return不能省
C 函数声明方式为:def 函数名(参数列表)=[返回类型]:{函数体}
D 函数的返回类型在可推断出来的情况下可以省略
【答案:AD】
def concat[T]( xss: Array[T]* ): Array[T]中Array[T]*的含义正确的是(ABC)
A “*”来指明该参数为重复参数
B 该函数的参数为变长参数
C Scala 在定义函数时允许指定最后一个参数可以重复
D 该函数的参数为默认参数
【答案:ABC】
日常习题
第二章习题
下关于 List的定义不正确的一项是哪项?(C)
A val list =List(12,2,3)
B vall list=List("Hello"."World"")
C val list:String =List("a","c")
D val list = List[Int](1,2,3)
【答案:C】
对集(Set)进行操作"Set(3,0,1)+2+2-2"之后的结果为哪项?(B)
A Set(3,0,1,2)
B Set(3,0,1)
C Set(3,0)
D 以上均不正确
【答案:B】
以下 Scala变量的定义不正确的是哪项?(C)
A val words :String ="Hello World"
B val mumber= 12
C var number:String = None
D var apple:Double=2
【答案:C】
关于函数def sumSquare(args:Int)= {var r = 0 ;for(arg <- args) r += argarg ;r},输出结果不一致的是哪项?(B)
A sumSquare(1,2,3)=14
B sumSquare(2,4)=16
C sumSquare(6)= 36
D sumSquare(1,1,2,3)= 15
【答案:B】
关于下面函数的结果说法错误的是哪项?def getPageNun(file:String) ={ val bookMap = Map("Chinese" -> 164, "Math" -> 180, "English" -> 150, "Geography" -> 120) bookMap.getorElse(file,0) }
A getPageNum("Math")=180
B getPageNum("English)= 150
C getPageNum("Physics )=164
D getPageNum(“Geography") = 120
【答案:C】
以下定义矩形体积的函数及调用正确的是(ABCD)
A def vju(chang:Int)={ (kuan:Int)=>{ gao:Int=>chang*kuan*gao } } vju(3)(4)(5)
B def vju(chang:Int):Int=>(Int=>Int)={ def vjuchang(kuan:Int):Int=>Int={ def vjuck(gao:Int):Int=chang*kuan*gao vjuck } vjuchang } vju(3)(4)(5)
C val vju=(chang:Int)=>{ (kuan:Int,gao:Int)=>chang*kuan*gao } vju(3)(4,5)
D val vju=(chang:Int,kuan:Int,gao:Int)=>chang*kuan*gao vju(3,4,5)
【答案:ABCD】
作者:萌狼蓝天
QQ:3447902411(仅限技术交流,添加请说明方向)
转载请注明原文链接:https://www.cnblogs.com/mllt/p/20211102_ReviewBeforeExamination.html