Bird
Raised Fist0
Apache Sparkdata~20 mins

What is an RDD (Resilient Distributed Dataset) in Apache Spark - Practice Questions & Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
RDD Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding RDD Characteristics

Which of the following best describes a Resilient Distributed Dataset (RDD) in Apache Spark?

AA fault-tolerant collection of elements that can be operated on in parallel across a cluster.
BA single-node data storage system optimized for fast reads.
CA graphical user interface for managing Spark jobs.
DA type of database used to store structured data only.
Attempts:
2 left
💡 Hint

Think about how Spark handles data across multiple machines and recovers from failures.

🧠 Conceptual
intermediate
2:00remaining
RDD Immutability

What does it mean that RDDs are immutable in Apache Spark?

AOnce created, an RDD cannot be changed; transformations create new RDDs instead.
BRDDs automatically delete old data after processing.
CRDDs can be updated in place to save memory.
DRDDs allow direct modification of data on cluster nodes.
Attempts:
2 left
💡 Hint

Consider how Spark manages data consistency and fault tolerance.

❓ Predict Output
advanced
2:00remaining
RDD Transformation Output

What is the output of the following Spark code snippet?

Apache Spark
rdd = sc.parallelize([1, 2, 3, 4, 5])
result = rdd.filter(lambda x: x % 2 == 0).collect()
print(result)
A[1, 2, 3, 4, 5]
B[2, 4]
C[1, 3, 5]
D[]
Attempts:
2 left
💡 Hint

Filter keeps elements where the condition is true.

❓ data_output
advanced
2:00remaining
RDD Action Result

Given the following RDD and action, what is the output?

Apache Spark
rdd = sc.parallelize([10, 20, 30, 40])
sum_value = rdd.reduce(lambda a, b: a + b)
print(sum_value)
ATypeError
B40
C10
D100
Attempts:
2 left
💡 Hint

Reduce combines all elements using the given function.

🔧 Debug
expert
2:00remaining
Identifying Error in RDD Code

What error will the following Spark code produce?

Apache Spark
rdd = sc.parallelize([1, 2, 3])
result = rdd.map(lambda x: x / 0).collect()
print(result)
AValueError
BTypeError
CZeroDivisionError
DNo error, outputs [inf, inf, inf]
Attempts:
2 left
💡 Hint

Consider what happens when dividing by zero in Python.

Practice

(1/5)
1. What is an RDD in Apache Spark?
easy
A. A distributed collection of data that can be processed in parallel
B. A type of database used for storing structured data
C. A tool for visualizing data in charts and graphs
D. A programming language for big data analysis

Solution

  1. Step 1: Understand the definition of RDD

    An RDD is a core data structure in Apache Spark that represents a distributed collection of objects.
  2. Step 2: Identify the correct description

    Among the options, only A distributed collection of data that can be processed in parallel correctly describes RDD as a distributed collection processed in parallel.
  3. Final Answer:

    A distributed collection of data that can be processed in parallel -> Option A
  4. Quick Check:

    RDD = distributed data collection [OK]
Hint: RDDs are distributed data collections for parallel processing [OK]
Common Mistakes:
  • Confusing RDD with databases
  • Thinking RDD is a visualization tool
  • Assuming RDD is a programming language
2. Which of the following is the correct way to create an RDD from a list in PySpark?
easy
A. rdd = sc.createRDD([1, 2, 3, 4])
B. rdd = SparkContext.create([1, 2, 3, 4])
C. rdd = sc.parallelize([1, 2, 3, 4])
D. rdd = spark.parallelize([1, 2, 3, 4])

Solution

  1. Step 1: Recall the method to create RDD from a list

    In PySpark, the SparkContext object (usually named sc) has a method called parallelize to create an RDD from a Python list.
  2. Step 2: Check each option for correctness

    rdd = sc.parallelize([1, 2, 3, 4]) uses sc.parallelize correctly. Options B and C use incorrect method names. rdd = spark.parallelize([1, 2, 3, 4]) uses spark, which is a SparkSession, not SparkContext, so parallelize is not directly available there.
  3. Final Answer:

    rdd = sc.parallelize([1, 2, 3, 4]) -> Option C
  4. Quick Check:

    Use sc.parallelize to create RDD from list [OK]
Hint: Use sc.parallelize(list) to create an RDD [OK]
Common Mistakes:
  • Using SparkSession instead of SparkContext
  • Wrong method names like create or createRDD
  • Confusing RDD creation with DataFrame creation
3. What will be the output of the following PySpark code?
rdd = sc.parallelize([1, 2, 3, 4])
result = rdd.map(lambda x: x * 2).collect()
medium
A. [1, 2, 3, 4]
B. [2, 4, 6, 8]
C. [0, 2, 4, 6]
D. Error: map function not found

Solution

  1. Step 1: Understand the map transformation on RDD

    The map function applies the given lambda function to each element of the RDD. Here, each element is multiplied by 2.
  2. Step 2: Calculate the result of map and collect

    Input list is [1, 2, 3, 4]. Multiplying each by 2 gives [2, 4, 6, 8]. collect() gathers the results into a list.
  3. Final Answer:

    [2, 4, 6, 8] -> Option B
  4. Quick Check:

    map doubles values, collect returns list [OK]
Hint: map applies function to each element, collect returns list [OK]
Common Mistakes:
  • Thinking map returns original list
  • Confusing map with filter
  • Expecting map to modify RDD in place
4. Identify the error in the following PySpark code snippet:
rdd = sc.parallelize([1, 2, 3, 4])
result = rdd.filter(lambda x: x > 2).map(x * 2).collect()
medium
A. The map function syntax is incorrect
B. The filter function is used incorrectly
C. The collect function cannot be used here
D. No error, code runs fine

Solution

  1. Step 1: Check the filter function usage

    The filter function is correctly used with a lambda to keep elements greater than 2.
  2. Step 2: Check the map function syntax

    map expects a function as argument. Here, x * 2 is an expression, not a function. It should be lambda x: x * 2.
  3. Final Answer:

    The map function syntax is incorrect -> Option A
  4. Quick Check:

    map needs a function, not an expression [OK]
Hint: map requires a function like lambda x: x * 2 [OK]
Common Mistakes:
  • Passing expression instead of function to map
  • Misusing filter syntax
  • Thinking collect causes error
5. You have an RDD of numbers and want to create a new RDD containing only the squares of even numbers. Which PySpark code correctly achieves this?
hard
A. rdd.map(lambda x: x % 2 == 0).filter(lambda x: x ** 2)
B. rdd.map(lambda x: x ** 2).filter(lambda x: x % 2 != 0)
C. rdd.filter(lambda x: x ** 2 % 2 != 0).map(lambda x: x ** 2)
D. rdd.filter(lambda x: x % 2 == 0).map(lambda x: x ** 2)

Solution

  1. Step 1: Filter even numbers from the RDD

    Use filter with lambda x: x % 2 == 0 to keep only even numbers.
  2. Step 2: Map the filtered RDD to squares

    Apply map with lambda x: x ** 2 to square each even number.
  3. Final Answer:

    rdd.filter(lambda x: x % 2 == 0).map(lambda x: x ** 2) -> Option D
  4. Quick Check:

    Filter evens first, then square [OK]
Hint: Filter evens first, then map to square [OK]
Common Mistakes:
  • Mapping before filtering changes logic
  • Filtering on squared values instead of original
  • Using incorrect lambda expressions
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard