当前位置:网站首页 > R语言数据分析 > 正文

spark 面试题(spark 面试题总结)



问题1★★★

var、val、def三个关键字之间的区别;伴生类与伴生对象;

(1)问题分析:主要考察Scala中的基本概念,这些是应该熟练掌握的

(2)核心问题回答

var是变量声明关键字,类似于Java中的变量,变量值可以更改,但是变量类型不能更改

val常量声明关键字

def关键字用于创建方法(注意方法和函数的区别)

还有一个lazyval(惰性val)声明,意思是当需要计算时才使用,避免重复计算

类和它的伴生对象同名且存在于同一个文件中,二者互为伴生;可以相互访问私有成员(字段和方

法);

问题2★★★

caseclass是什么,与caseobject的区别是什么

(1)问题分析:主要考察样例类的理解,样例类在Scala、Spark的开发中使用的非常频繁,对其应该

熟练掌握

(2)核心问题回答

样例类是scala中特殊的类。当声明样例类时,如下事情会自动发生:

构造器中每一个参数都成为val。除非它被显示的声明为var(不建议这样做)

提供apply方法。不用new关键字就能够构造出相应的对象

提供unapply方法。让模式匹配可以工作

将生成toString、equals、hashCode和copy方法。除非你显示的给出这些方法的定义

继承了Product和Serializable,即已实现序列化方法和可以应用Product的方法

caseclass是多例的,后面要跟构造参数,caseobject是单例的

此外,caseclass和其他类型完全一样,可以添加方法和字段,扩展它们;

caseclass最大的用处是用于模式匹配。

(3)问题扩展

模式匹配的相关问题

问题3★★★

Spark为什么快,SparkSQL一定比Hive快吗

(1)问题分析:常见问题,但是并不好答,因为只有对两个计算框架有一定程度的理解才能准确回

答。

(2)核心问题回答

通常大家只是说Spark是基于内存计算的,速度比MapReduce要快。或者说内存中迭代计算。其实没有

抓住问题的本质,所有的计算都是发生在内存中的,MR的计算一样是发生在内存中的。

说Spark是基于内存的计算,正确的理解应该:与MR相比Spark积极的使用内存,减少数据的落地。

Spark比MR快主要有两个原因:

MapReduce通常需要将计算的结果(即Job的结果)写入磁盘,然后还要读取磁盘,从而导致了频

繁的磁盘IO;

MapReduce采用了多进程模型,而Spark采用了多线程模型。MapReduce的MapTask和Reduce

Task是进程级别的,而SparkTask则是基于线程模型的,就是说map、reduceTask都是jvm进

程,每次启动都需要重新申请资源,消耗大量时间;Spark则是通过复用线程池中的线程来减少启

动、关闭task所需要的开销;

对于以下查询:

Selectmonth,sum(sales)fromtabgroupbymonth;

这个查询对于MR来说也只需要一个Job就能完成。此时,也许HQL的运行时间也许比SparkSQL还

快,因为MR没有中间的结果数据落地。

结论:Spark快不是绝对的,但绝大多数情况下,Spark都比Hadoop计算要快,特别是在迭代计算

中。这主要得益于其对Spark积极的使用内存以及对JVM使用的优化。

问题4★★★

描述以下你对RDD的理解

(1)问题分析:对Spark基本概念的考察,对RDD同学们都有一定的了解,但是要论述

到此这篇spark 面试题(spark 面试题总结)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • shoulderpress器械使用(legpress器械怎么用)2025-07-23 12:00:06
  • strace用法(stric用法)2025-07-23 12:00:06
  • ip15promax壁纸(iphone15pro最新壁纸)2025-07-23 12:00:06
  • controller扫描不到(springmvc扫描不到controller)2025-07-23 12:00:06
  • docker版本升级(docker在线升级)2025-07-23 12:00:06
  • swaggerui访问(swagger文档访问地址)2025-07-23 12:00:06
  • list转换为string数组(list转换成string)2025-07-23 12:00:06
  • docker版本区别(docker-gen)2025-07-23 12:00:06
  • docker-ce版本(docker最新版本)2025-07-23 12:00:06
  • phraise是什么意思(phrases什么意思)2025-07-23 12:00:06
  • 全屏图片