Spark大作業練習題(單選及spark的優勢)

提供兩個Scala在線編程的網站:
https://scalafiddle.io/
http://www.scalakata.com
學習spark的網站:
http://dblab.xmu.edu.cn/blog/1709-2/(大數據之Spark入門教程(Python版))

單項選擇題

1、Scala程序編譯後的文件以什麼結尾:
A、.class B、java C、.scala D、.sc

2、以下哪種Scala方法可以正確計算數組a的長度:
A、count() B、take(1) C、tail() D、length()

3、以下語句中符合Scala編程規範的是:
①val s=“Spark” ②"abc".contains(“a”)
③"123".equals(123) ④SparkConf sc=new SparkContext(conf)(應該是val sc…)
A、①②B、①④ C、②③ D、②④

4、Scala中如何取出字符串str的後4個字符作爲輸出?
A、str.get(str.length-5,str-1)B、str.tail(str.length-5,str.length-1)
C、str.substring(str.length-4,str.length D、str.cat(str.length-5,str.length-1)

5、下面哪個方法不是用於創建RDD?
A、makeRDD B、parallelize C、textFile D、saveAsTextFile

6、下面哪個不是RDD的特點:
A、可分區 B、可序列化 C、可修改 D、可持久化

7、Spark支持的分佈式資源管理器不包括:
A、standalone B、Mesos C、YARN D、Local

8、下面哪一組全部都是Spark的轉換操作:
A、map、take、reduceByKey
B、map、filter、collect
C、map、union、reduceByKey
D、jion、map、take

下面列出一些常見的轉換操作(Transformation API):

  • filter(func)、* map(func)、* flatMap(func)、* groupByKey()、* reduceByKey(func)、

下面列出一些常見的行動操作(Action API):

  • count() 、* collect() 、* first() 、* take(n) 、* reduce(func) 、* foreach(func) 、

9、Spark 中下面哪種操作方法的返回值可以與輸入類型不同:
A、reduceByKey B、combineByKey C、sortByKey D、groupByKey

10、Spark 中使用 saveAs TextFile存儲數據到HDFS,要求數據類型爲:
A、List B、Array C、Seq D、RDD

11、Spark SQL可以處理的數據源包括:
A、Hive表
B、數據文件、Hive表
C、數據文件、Hive表、RDD
D、數據文件、Hive表、RDD、外部數據庫

12、下列說法正確的是:
A、SparkSQL的前身是Hive //是shark
B、DataFrame其實就是RDD
C、HiveContext繼承了SqlContext
D、HiveContext只支持SQL 語法解析器 //還有HiveQL 語法解析器

13、查看DataFrame對象df前30條記錄的語句爲:
A、df.show
B、fs.show(false)//顯示所有記錄
C、fs.show(30)
D、df.collect)

14、關於DataFrame的說法錯誤的是:
A、DataFrame是由SchemaRDD發展而來
B、DataFrame直接繼承了RDD
C、DataFrame實現了RDD的絕大多數功能
D、DataFrame是一個分佈式Row對象的數據集合

15、相比Spark,Spark SOL 有哪些優勢?
①Spark SQL擺脫了對Hive的依賴
②Spark SQL支持在Scala中寫SQL語句
③Spark SQL支持parquet文件的讀寫,且保留了Schema
④Spark SQL 支持訪問Hive,而Spark不支持
A、①② B、①②③ C、①②③④ D、②③④

16、DataFrame的groupBy方法返回的結果是什麼類型:
A、DataFrame B、Column C、RDD D、GroupedData

17、Spark Streaming的基礎和高級數據來源包括哪些?
A、文件系統、Socket連接、Hive
B、文件系統、Socket 連接和Kafka
C、HDFS、HBase
D、Socket連接、MySQL

18、將DStream中的數據輸出到外部數據庫時,以下做法正確的是哪項?
A、在Spark Driver 端創建連接
B、直接在Worker 端創建連接
C、在Worker 端使用foreachpartition 創建連接
D、在Spark Driver 端使用foreachpartition創建連接

19、關於Spark Streaming,以下說法錯誤的是哪項?
A、Spark Streaming是Spark的核心子框架之一
B、Spark Streaming 具有可伸縮、高吞吐量、容錯能力強等特點
C、Spark Streaming處理的數據源可以來自Kafka
D、Spark Streaming 不能和Spark SQL、MLlib、GraphX無縫集成

20、Spark Streaming程序執行過程中,以下幾個步驟的執行順序是:
①創建StreamingContext對象
②創建InputDStream
③操作DStream
④啓動Spark Streaming
A、②④③① B、①②③④ C、①②④③D、④①②③

對比Hadoop 框架和Spark框架,Spark 有哪些優勢?

回顧Hadoop的工作流程,可以發現Hadoop存在如下一些缺點:
表達能力有限。計算都必須要轉化成Map和Reduce兩個操作,但這並不適合所有的情況,難以描述複雜的數據處理過程;
磁盤IO開銷大。每次執行時都需要從磁盤讀取數據,並且在計算完成後需要將中間結果寫入到磁盤中,IO開銷較大;
延遲高。一次計算可能需要分解成一系列按順序執行的MapReduce任務,任務之間的銜接由於涉及到IO開銷,會產生較高延遲。而且,在前一個任務執行完成之前,其他任務無法開始,難以勝任複雜、多階段的計算任務。
Spark在借鑑Hadoop MapReduce優點的同時,很好地解決了MapReduce所面臨的問題。相比於MapReduce,Spark主要具有如下優點:
 Spark的計算模式也屬於MapReduce,但不侷限於Map和Reduce操作,還提供了多種數據集操作類型,編程模型比MapReduce更靈活
 Spark提供了內存計算,中間結果直接放到內存中,帶來了更高的迭代運算效率;
 Spark基於DAG的任務調度執行機制,要優於MapReduce的迭代執行機制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章