【Spark】【复习】Spark入门考前概念相关题复习

Spark考前概念相关题复习

AUthor:萌狼蓝天

哔哩哔哩:萌狼蓝天

博客园:我的文章 - 萌狼蓝天

博客:萌狼工作室 - 萌狼蓝天 (mllt.cc)

选择题

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=>changkuangao } } vju(3)(4)(5)
B def vju(chang:Int):Int=>(Int=>Int)={ def vjuchang(kuan:Int):Int=>Int={ def vjuck(gao:Int):Int=changkuangao vjuck } vjuchang } vju(3)(4)(5)
C val vju=(chang:Int)=>{ (kuan:Int,gao:Int)=>changkuangao } vju(3)(4,5)
D val vju=(chang:Int,kuan:Int,gao:Int)=>changkuangao 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=>changkuangao } } vju(3)(4)(5)
B def vju(chang:Int):Int=>(Int=>Int)={ def vjuchang(kuan:Int):Int=>Int={ def vjuck(gao:Int):Int=changkuangao vjuck } vjuchang } vju(3)(4)(5)
C val vju=(chang:Int)=>{ (kuan:Int,gao:Int)=>changkuangao } vju(3)(4,5)
D val vju=(chang:Int,kuan:Int,gao:Int)=>changkuangao vju(3,4,5)

【答案:ABCD】

上一篇:scala语言(八)-------隐式转换


下一篇:Windows上Scala安装教程