【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=>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】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM