0% found this document useful (0 votes)
366 views

Spark Interview Questions

This document provides an overview of Apache Spark and discusses 50 common interview questions and answers related to Spark. It begins by explaining how Spark is gaining adoption for processing big data faster than Hadoop MapReduce and the increasing demand for Spark developers. The rest of the document lists 50 interview questions in categories like RDDs, transformations and actions, cluster managers, minimizing data transfers, and more. It provides concise explanations and examples for each question to help candidates prepare for Spark developer interviews.

Uploaded by

santosh kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
366 views

Spark Interview Questions

This document provides an overview of Apache Spark and discusses 50 common interview questions and answers related to Spark. It begins by explaining how Spark is gaining adoption for processing big data faster than Hadoop MapReduce and the increasing demand for Spark developers. The rest of the document lists 50 interview questions in categories like RDDs, transformations and actions, cluster managers, minimizing data transfers, and more. It provides concise explanations and examples for each question to help candidates prepare for Spark developer interviews.

Uploaded by

santosh kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 19

Top 50 Spark Interview

Questions and Answers for


2017
06 Feb 2016
Last Update made on June 20,2017.
Preparation is very
important to reduce the
nervous energy at any
big data job interview.
Regardless of the big
data expertise and skills
one possesses, every
candidate dreads the
face to face big data job
interview. Though there is
no way of predicting
exactly what questions
will be asked in any big
data or spark developer
job interview- these
Apache spark interview
questions and answers
might help you prepare
for these interviews
better.

With the increasing demand from the industry, to process big data at a faster
pace -Apache Spark is gaining huge momentum when it comes to enterprise
adoption. Hadoop MapReduce well supported the need to process big data
fast but there was always a need among developers to learn more flexible
tools to keep up with the superior market of midsize big data sets, for real time
data processing within seconds.
To support the momentum for faster big data processing, there is increasing
demand for Apache Spark developers who can validate their expertise in
implementing best practices for Spark - to build complex big data solutions. In
collaboration with and big data industry experts -we have curated a list of top
50 Apache Spark Interview Questions and Answers that will help
students/professionals nail a big data developer interview and bridge the
talent supply for Spark Developers across various industry segments.

Companies like Amazon, Shopify, Alibaba and eBay are adopting Apache
Spark for their big data deployments- the demand for Spark developers is
expected to grow exponentially. Google Trends confirm hockey-stick-like-
growth in Spark enterprise adoption and awareness among organizations
across various industries. Spark is becoming popular because of its ability to
handle event streaming and processing big data faster than Hadoop
MapReduce. 2017 is the best time to hone your Apache Spark skills and
pursue a fruitful career as a data analytics professional, data scientist or big
data developer.

DeZyres Apache Spark Certification will help you develop skills which will
make you eligible to apply for Spark developer job roles.
Top 50 Apache Spark Interview
Questions and Answers
1) Compare Spark vs Hadoop MapReduce

Criteria Hadoop MapReduce Apache Spark

Does not leverage the


Memory memory of the hadoop Let's save data on memory
cluster to maximum. with the use of RDD's.

Spark caches data in-


Disk usage MapReduce is disk memory and ensures low
oriented. latency.

Supports real-time
Processing Only batch processing is processing through spark
supported streaming.

Installation
Is bound to hadoop. Is not bound to Hadoop.

Spark vs Hadoop
Simplicity, Flexibility and Performance are the major advantages of using
Spark over Hadoop.

Spark is 100 times faster than Hadoop for big data processing
as it stores the data in-memory, by placing it in Resilient Distributed
Databases (RDD).

Spark is easier to program as it comes with an interactive


mode.

It provides complete recovery using lineage graph whenever


something goes wrong.

Refer Spark vs Hadoop


2) What is Shark?
Most of the data users know only SQL and are not good at programming.
Shark is a tool, developed for people who are from a database background -
to access Scala MLib capabilities through Hive like SQL interface. Shark tool
helps data users run Hive on Spark - offering compatibility with Hive
metastore, queries and data.

3) List some use cases where Spark outperforms Hadoop in


processing.
i. Sensor Data Processing Apache Sparks In-memory
computing works best here, as data is retrieved and combined from
different sources.

ii. Spark is preferred over Hadoop for real time querying of data

iii. Stream Processing For processing logs and detecting frauds


in live streams for alerts, Apache Spark is the best solution.

4) What is a Sparse Vector?


A sparse vector has two parallel arrays one for indices and the other for
values. These vectors are used for storing non-zero entries to save space.

5) What is RDD?
RDDs (Resilient Distributed Datasets) are basic abstraction in Apache
Spark that represent the data coming into the system in object format.
RDDs are used for in-memory computations on large clusters, in a fault
tolerant manner. RDDs are read-only portioned, collection of records, that
are

Immutable RDDs cannot be altered.

Resilient If a node holding the partition fails the other node


takes the data.

6) Explain about transformations and actions in the context


of RDDs.
Transformations are functions executed on demand, to produce a new RDD.
All transformations are followed by actions. Some examples of
transformations include map, filter and reduceByKey.

Actions are the results of RDD computations or transformations. After an


action is performed, the data from RDD moves back to the local machine.
Some examples of actions include reduce, collect, first, and take.

7) What are the languages supported by Apache Spark for


developing big data applications?
Scala, Java, Python, R and Clojure

8) Can you use Spark to access and analyse data stored in


Cassandra databases?
Yes, it is possible if you use Spark Cassandra Connector.
9) Is it possible to run Apache Spark on Apache Mesos?
Yes, Apache Spark can be run on the hardware clusters managed by Mesos.

10) Explain about the different cluster managers in Apache


Spark
The 3 different clusters managers supported in Apache Spark are:

YARN

Apache Mesos -Has rich resource scheduling capabilities and is


well suited to run Spark along with other applications. It is
advantageous when several users run interactive shells because it
scales down the CPU allocation between commands.

Standalone deployments Well suited for new deployments


which only run and are easy to set up.

11) How can Spark be connected to Apache Mesos?


To connect Spark with Mesos-

Configure the spark driver program to connect to Mesos. Spark


binary package should be in a location accessible by Mesos. (or)

Install Apache Spark in the same location as that of Apache


Mesos and configure the property spark.mesos.executor.home to
point to the location where it is installed.

12) How can you minimize data transfers when working with
Spark?
Minimizing data transfers and avoiding shuffling helps write spark programs
that run in a fast and reliable manner. The various ways in which data
transfers can be minimized when working with Apache Spark are:

1. Using Broadcast Variable- Broadcast variable enhances the


efficiency of joins between small and large RDDs.

2. Using Accumulators Accumulators help update the values of


variables in parallel while executing.

3. The most common way is to avoid operations ByKey,


repartition or any other operations which trigger shuffles.

13) Why is there a need for broadcast variables when


working with Apache Spark?
These are read only variables, present in-memory cache on every machine.
When working with Spark, usage of broadcast variables eliminates the
necessity to ship copies of a variable for every task, so data can be processed
faster. Broadcast variables help in storing a lookup table inside the memory
which enhances the retrieval efficiency when compared to an RDD lookup ().

14) Is it possible to run Spark and Mesos along with


Hadoop?
Yes, it is possible to run Spark and Mesos with Hadoop by launching each of
these as a separate service on the machines. Mesos acts as a unified
scheduler that assigns tasks to either Spark or Hadoop.

15) What is lineage graph?


The RDDs in Spark, depend on one or more other RDDs. The representation
of dependencies in between RDDs is known as the lineage graph. Lineage
graph information is used to compute each RDD on demand, so that
whenever a part of persistent RDD is lost, the data that is lost can be
recovered using the lineage graph information.

16) How can you trigger automatic clean-ups in Spark to


handle accumulated metadata?
You can trigger the clean-ups by setting the parameter spark.cleaner.ttl or by
dividing the long running jobs into different batches and writing the
intermediary results to the disk.

17) Explain about the major libraries that constitute the


Spark Ecosystem
Spark MLib- Machine learning library in Spark for commonly
used learning algorithms like clustering, regression, classification,
etc.
Spark Streaming This library is used to process real time
streaming data.
Spark GraphX Spark API for graph parallel computations
with basic operators like joinVertices, subgraph,
aggregateMessages, etc.
Spark SQL Helps execute SQL like queries on Spark data
using standard visualization or BI tools.
18) What are the benefits of using Spark with Apache
Mesos?
It renders scalable partitioning among various Spark instances and dynamic
partitioning between Spark and other big data frameworks.

19) What is the significance of Sliding Window operation?


Sliding Window controls transmission of data packets between various
computer networks. Spark Streaming library provides windowed computations
where the transformations on RDDs are applied over a sliding window of data.
Whenever the window slides, the RDDs that fall within the particular window
are combined and operated upon to produce new RDDs of the windowed
DStream.

20) What is a DStream?


Discretized Stream is a sequence of Resilient Distributed Databases that
represent a stream of data. DStreams can be created from various sources
like Apache Kafka, HDFS, and Apache Flume. DStreams have two operations

Transformations that produce a new DStream.

Output operations that write data to an external system.

21) When running Spark applications, is it necessary to


install Spark on all the nodes of YARN cluster?
Spark need not be installed when running a job under YARN or Mesos
because Spark can execute on top of YARN or Mesos clusters without
affecting any change to the cluster.

22) What is Catalyst framework?


Catalyst framework is a new optimization framework present in Spark SQL. It
allows Spark to automatically transform SQL queries by adding new
optimizations to build a faster processing system.

23) Name a few companies that use Apache Spark in


production.
Pinterest, Conviva, Shopify, Open Table

24) Which spark library allows reliable file sharing at


memory speed across different cluster frameworks?
Tachyon
Work On Interesting Data Science Projects using
Spark to build an impressive project portfolio!
25) Why is BlinkDB used?
BlinkDB is a query engine for executing interactive SQL queries on huge
volumes of data and renders query results marked with meaningful error bars.
BlinkDB helps users balance query accuracy with response time.

26) How can you compare Hadoop and Spark in terms of


ease of use?
Hadoop MapReduce requires programming in Java which is difficult, though
Pig and Hive make it considerably easier. Learning Pig and Hive syntax takes
time. Spark has interactive APIs for different languages like Java, Python or
Scala and also includes Shark i.e. Spark SQL for SQL lovers - making it
comparatively easier to use than Hadoop.

27) What are the common mistakes developers make when


running Spark applications?
Developers often make the mistake of-

Hitting the web service several times by using multiple


clusters.

Run everything on the local node instead of distributing it.

Developers need to be careful with this, as Spark makes use of memory for
processing.

28) What is the advantage of a Parquet file?


Parquet file is a columnar format file that helps

Limit I/O operations

Consumes less space


Fetches only required columns.

29) What are the various data sources available in


SparkSQL?
Parquet file

JSON Datasets

Hive tables

30) How Spark uses Hadoop?


Spark has its own cluster management computation and mainly uses Hadoop
for storage.

For the complete list of big data companies and their salaries- CLICK HERE
31) What are the key features of Apache Spark that you like?
Spark provides advanced analytic options like graph
algorithms, machine learning, streaming data, etc

It has built-in APIs in multiple languages like Java, Scala,


Python and R

It has good performance gains, as it helps run an application in


the Hadoop cluster ten times faster on disk and 100 times faster in
memory.

32) What do you understand by Pair RDD?


Special operations can be performed on RDDs in Spark using key/value pairs
and such RDDs are referred to as Pair RDDs. Pair RDDs allow users to
access each key in parallel. They have a reduceByKey () method that collects
data based on each key and a join () method that combines different RDDs
together, based on the elements having the same key.
33) Which one will you choose for a project Hadoop
MapReduce or Apache Spark?
The answer to this question depends on the given project scenario - as it is
known that Spark makes use of memory instead of network and disk I/O.
However, Spark uses large amount of RAM and requires dedicated machine
to produce effective results. So the decision to use Hadoop or Spark varies
dynamically with the requirements of the project and budget of the
organization.

34) Explain about the different types of transformations on


DStreams?
Stateless Transformations- Processing of the batch does not
depend on the output of the previous batch. Examples map (),
reduceByKey (), filter ().

Stateful Transformations- Processing of the batch depends on


the intermediary results of the previous batch. Examples
Transformations that depend on sliding windows.

35) Explain about the popular use cases of Apache Spark


Apache Spark is mainly used for

Iterative machine learning.

Interactive data analytics and processing.

Stream processing

Sensor data processing

36) Is Apache Spark a good fit for Reinforcement learning?


No. Apache Spark works well only for simple machine learning algorithms like
clustering, regression, classification.
37) What is Spark Core?
It has all the basic functionalities of Spark, like - memory management, fault
recovery, interacting with storage systems, scheduling tasks, etc.

38) How can you remove the elements with a key present in
any other RDD?
Use the subtractByKey () function

39) What is the difference between persist() and cache()


persist () allows the user to specify the storage level whereas cache () uses
the default storage level.

40) What are the various levels of persistence in Apache


Spark?
Apache Spark automatically persists the intermediary data from various
shuffle operations, however it is often suggested that users call persist ()
method on the RDD in case they plan to reuse it. Spark has various
persistence levels to store the RDDs on disk or in memory or as a
combination of both with different replication levels.

The various storage/persistence levels in Spark are -

MEMORY_ONLY

MEMORY_ONLY_SER

MEMORY_AND_DISK

MEMORY_AND_DISK_SER, DISK_ONLY

OFF_HEAP

41) How Spark handles monitoring and logging in


Standalone mode?
Spark has a web based user interface for monitoring the cluster in standalone
mode that shows the cluster and job statistics. The log output for each job is
written to the work directory of the slave nodes.

42) Does Apache Spark provide check pointing?


Lineage graphs are always useful to recover RDDs from a failure but this is
generally time consuming if the RDDs have long lineage chains. Spark has an
API for check pointing i.e. a REPLICATE flag to persist. However, the decision
on which data to checkpoint - is decided by the user. Checkpoints are useful
when the lineage graphs are long and have wide dependencies.

43) How can you launch Spark jobs inside Hadoop


MapReduce?
Using SIMR (Spark in MapReduce) users can run any spark job inside
MapReduce without requiring any admin rights.

44) How Spark uses Akka?


Spark uses Akka basically for scheduling. All the workers request for a task to
master after registering. The master just assigns the task. Here Spark uses
Akka for messaging between the workers and masters.

45) How can you achieve high availability in Apache Spark?


Implementing single node recovery with local file system

Using StandBy Masters with Apache ZooKeeper.

46) Hadoop uses replication to achieve fault tolerance. How


is this achieved in Apache Spark?
Data storage model in Apache Spark is based on RDDs. RDDs help achieve
fault tolerance through lineage. RDD always has the information on how to
build from other datasets. If any partition of a RDD is lost due to failure,
lineage helps build only that particular lost partition.
47) Explain about the core components of a distributed
Spark application.
Driver- The process that runs the main () method of the
program to create RDDs and perform transformations and actions on
them.

Executor The worker processes that run the individual tasks of


a Spark job.

Cluster Manager-A pluggable component in Spark, to launch


Executors and Drivers. The cluster manager allows Spark to run on
top of other external managers like Apache Mesos or YARN.

48) What do you understand by Lazy Evaluation?


Spark is intellectual in the manner in which it operates on data. When you tell
Spark to operate on a given dataset, it heeds the instructions and makes a
note of it, so that it does not forget - but it does nothing, unless asked for the
final result. When a transformation like map () is called on a RDD-the
operation is not performed immediately. Transformations in Spark are not
evaluated till you perform an action. This helps optimize the overall data
processing workflow.

49) Define a worker node.


A node that can run the Spark application code in a cluster can be called as a
worker node. A worker node can have more than one worker which is
configured by setting the SPARK_ WORKER_INSTANCES property in the
spark-env.sh file. Only one worker is started if the SPARK_
WORKER_INSTANCES property is not defined.

50) What do you understand by SchemaRDD?


An RDD that consists of row objects (wrappers around basic string or integer
arrays) with schema information about the type of data in each column.

51) What are the disadvantages of using Apache Spark over


Hadoop MapReduce?
Apache spark does not scale well for compute intensive jobs and consumes
large number of system resources. Apache Sparks in-memory capability at
times comes a major roadblock for cost efficient processing of big data. Also,
Spark does have its own file management system and hence needs to be
integrated with other cloud based data platforms or apache hadoop.

52) Is it necessary to install spark on all the nodes of a YARN


cluster while running Apache Spark on YARN ?
No , it is not necessary because Apache Spark runs on top of YARN.

53) What do you understand by Executor Memory in a Spark


application?
Every spark application has same fixed heap size and fixed number of cores
for a spark executor. The heap size is what referred to as the Spark executor
memory which is controlled with the spark.executor.memory property of the
executor-memory flag. Every spark application will have one executor on each
worker node. The executor memory is basically a measure on how much
memory of the worker node will the application utilize.

54) What does the Spark Engine do?


Spark engine schedules, distributes and monitors the data application across
the spark cluster.

55) What makes Apache Spark good at low-latency


workloads like graph processing and machine learning?
Apache Spark stores data in-memory for faster model building and training.
Machine learning algorithms require multiple iterations to generate a resulting
optimal model and similarly graph algorithms traverse all the nodes and
edges.These low latency workloads that need multiple iterations can lead to
increased performance. Less disk access and controlled network traffic make
a huge difference when there is lots of data to be processed.

56) Is it necessary to start Hadoop to run any Apache Spark


Application ?
Starting hadoop is not manadatory to run any spark application. As there is no
seperate storage in Apache Spark, it uses Hadoop HDFS but it is not
mandatory. The data can be stored in local file system, can be loaded from
local file system and processed.

57) What is the default level of parallelism in apache spark?


If the user does not explicitly specify then the number of partitions are
considered as default level of parallelism in Apache Spark.

58) Explain about the common workflow of a Spark program


The foremost step in a Spark program involves creating input
RDD's from external data.

Use various RDD transformations like filter() to create new


transformed RDD's based on the business logic.

persist() any intermediate RDD's which might have to be


reused in future.

Launch various RDD actions() like first(), count() to begin


parallel computation , which will then be optimized and executed by
Spark.

Spark SQL Interview Questions


1) Explain the difference between Spark SQL and Hive.
Spark SQL is faster than Hive.

Any Hive query can easily be executed in Spark SQL but vice-
versa is not true.

Spark SQL is a library whereas Hive is a framework.

It is not mandatory to create a metastore in Spark SQL but it is


mandatory to create a Hive metastore.

Spark SQL automatically infers the schema whereas in Hive


schema needs to be explicitly declared..

Spark Streaming Interview Questions


1) Name some sources from where Spark streaming
component can process real-time data.
Apache Flume, Apache Kafka, Amazon Kinesis

2) Name some companies that are already using Spark


Streaming.
Uber, Netflix, Pinterest.

3) What is the bottom layer of abstraction in the Spark


Streaming API ?
DStream.

We invite the big data community to share the most frequently asked Apache
Spark Interview questions and answers, in the comments below - to ease big
data job interviews for all prospective analytics professionals.

You might also like