RDD stands for Resilient Distributed Dataset. It is a fundamental data structure in Apache Spark.
Click to reveal answer
beginner
What is the main feature of an RDD that helps with fault tolerance?
RDDs are resilient because they keep track of how to rebuild lost data using lineage information, so they can recover automatically if a part of the data is lost.
Click to reveal answer
beginner
How is data stored in an RDD?
Data in an RDD is stored in partitions across multiple machines, allowing parallel processing.
Click to reveal answer
beginner
What kind of operations can you perform on RDDs?
You can perform transformations (like map, filter) to create new RDDs and actions (like collect, count) to get results.
Click to reveal answer
beginner
Why is RDD called 'Resilient'?
Because it can recover lost data automatically by using the information about how it was created, making it fault-tolerant.
Click to reveal answer
What does the 'Resilient' part in RDD mean?
AIt only works with small datasets
BIt stores data in a single machine
CIt requires manual backup
DIt can recover lost data automatically
✗ Incorrect
RDDs are resilient because they can recover lost data automatically using lineage information.
Which of the following is NOT a type of operation on RDDs?
ATransformation
BAction
CCompilation
DFiltering
✗ Incorrect
Compilation is not an operation on RDDs. Transformations and actions are the main types.
How is data distributed in an RDD?
AStored in partitions across multiple machines
BStored in a single file on one machine
CStored only in memory on one machine
DStored as a single block on disk
✗ Incorrect
RDD data is split into partitions and distributed across many machines for parallel processing.
What does lineage information in RDDs help with?
ARebuilding lost data
BIncreasing storage size
CSpeeding up network
DEncrypting data
✗ Incorrect
Lineage tracks how RDDs are built so Spark can rebuild lost data if needed.
Which of these is an example of an RDD transformation?
Acount()
Bmap()
Ccollect()
Dsave()
✗ Incorrect
map() is a transformation that creates a new RDD by applying a function to each element.
Explain what an RDD is and why it is important in Apache Spark.
Think about how Spark handles big data across many machines safely.
You got /4 concepts.
Describe the difference between transformations and actions in RDDs.
Consider what happens when you want to change data vs. when you want to see results.
You got /4 concepts.
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
Step 1: Understand the definition of RDD
An RDD is a core data structure in Apache Spark that represents a distributed collection of objects.
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.
Final Answer:
A distributed collection of data that can be processed in parallel -> Option A
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
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.
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.
Final Answer:
rdd = sc.parallelize([1, 2, 3, 4]) -> Option C
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
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.
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.
Final Answer:
[2, 4, 6, 8] -> Option B
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
Step 1: Check the filter function usage
The filter function is correctly used with a lambda to keep elements greater than 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.
Final Answer:
The map function syntax is incorrect -> Option A
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
Step 1: Filter even numbers from the RDD
Use filter with lambda x: x % 2 == 0 to keep only even numbers.
Step 2: Map the filtered RDD to squares
Apply map with lambda x: x ** 2 to square each even number.
Final Answer:
rdd.filter(lambda x: x % 2 == 0).map(lambda x: x ** 2) -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.