Bird
Raised Fist0
Apache Sparkdata~5 mins

Reading JSON and nested data in Apache Spark - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main function to read a JSON file in Apache Spark?
You use spark.read.json(path) to load a JSON file into a DataFrame.
Click to reveal answer
beginner
How do you access nested fields in a JSON column in Spark?
You use dot notation like df.select("nestedField.subField") to access nested data.
Click to reveal answer
intermediate
What Spark function helps to flatten nested JSON structures?
You can use explode() to turn nested arrays into separate rows, helping flatten the data.
Click to reveal answer
beginner
How can you infer the schema automatically when reading JSON in Spark?
By default, spark.read.json() infers the schema from the JSON data automatically.
Click to reveal answer
intermediate
Why is it useful to understand the schema of nested JSON data before processing?
Knowing the schema helps you select, filter, and transform nested fields correctly without errors.
Click to reveal answer
Which Spark method reads a JSON file into a DataFrame?
Aspark.read.json()
Bspark.load.csv()
Cspark.read.text()
Dspark.load.json()
How do you select a nested field named 'address.city' from a DataFrame?
Adf.select('address_city')
Bdf.select('address-city')
Cdf.select('city')
Ddf.select('address.city')
What does the explode() function do in Spark?
AJoins two DataFrames
BFlattens nested arrays into multiple rows
CFilters rows based on condition
DAggregates data by key
If a JSON file has nested objects, how does Spark handle the schema by default?
AInfers nested schema automatically
BReads all data as strings
CFails to read nested data
DRequires manual schema definition
Why is schema knowledge important when working with nested JSON?
ATo convert JSON to CSV
BTo speed up file reading
CTo correctly select and transform nested fields
DTo delete nested data
Explain how to read a nested JSON file in Apache Spark and access a nested field.
Think about how JSON structure maps to DataFrame columns.
You got /3 concepts.
    Describe the purpose and use of the explode() function when working with nested JSON data in Spark.
    Imagine turning a list inside a cell into multiple rows.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does Apache Spark do when reading a JSON file with nested data?
      easy
      A. It automatically parses nested fields into a structured DataFrame.
      B. It ignores nested fields and reads only top-level data.
      C. It converts JSON into plain text without structure.
      D. It requires manual flattening before reading nested data.

      Solution

      1. Step 1: Understand Spark JSON reading

        Spark reads JSON files and automatically detects nested structures.
      2. Step 2: Effect on DataFrame

        Nested JSON fields become nested columns accessible via dot notation.
      3. Final Answer:

        It automatically parses nested fields into a structured DataFrame. -> Option A
      4. Quick Check:

        Spark JSON reading = automatic nested parsing [OK]
      Hint: Spark reads nested JSON as nested columns automatically [OK]
      Common Mistakes:
      • Thinking Spark ignores nested fields
      • Assuming JSON is read as plain text
      • Believing manual flattening is always needed
      2. Which of the following is the correct syntax to read a JSON file named data.json into a Spark DataFrame?
      easy
      A. spark.read.text("data.json")
      B. spark.read.csv("data.json")
      C. spark.load.json("data.json")
      D. spark.read.json("data.json")

      Solution

      1. Step 1: Identify correct Spark method for JSON

        The method to read JSON files is spark.read.json().
      2. Step 2: Check other options

        csv reads CSV files, load is generic but needs format specified, text reads plain text lines.
      3. Final Answer:

        spark.read.json("data.json") -> Option D
      4. Quick Check:

        Read JSON file = spark.read.json() [OK]
      Hint: Use spark.read.json() to load JSON files [OK]
      Common Mistakes:
      • Using spark.read.csv() for JSON files
      • Using spark.load.json() without format
      • Using spark.read.text() for structured JSON
      3. Given the following JSON data loaded into a DataFrame df:
      [{"name": "Alice", "info": {"age": 30, "city": "NY"}}, {"name": "Bob", "info": {"age": 25, "city": "LA"}}]
      What will be the output of df.select("info.age").collect()?
      medium
      A. [Row(age="NY"), Row(age="LA")]
      B. [Row(info=30), Row(info=25)]
      C. [Row(age=30), Row(age=25)]
      D. [30, 25]

      Solution

      1. Step 1: Understand nested field selection

        Using select("info.age") selects the nested field age inside info.
      2. Step 2: Result of collect()

        collect() returns a list of Row objects with the selected field values.
      3. Final Answer:

        [Row(age=30), Row(age=25)] -> Option C
      4. Quick Check:

        Select nested field = list of Rows with that field [OK]
      Hint: Selecting nested fields returns Rows with field names [OK]
      Common Mistakes:
      • Expecting plain values instead of Row objects
      • Confusing nested field name with top-level
      • Selecting wrong nested key
      4. You try to select a nested field using df.select("info-age") but get an error. What is the likely cause?
      medium
      A. Using a dash (-) instead of dot (.) to access nested fields.
      B. The JSON file is empty.
      C. The DataFrame was not loaded with spark.read.json().
      D. Nested fields cannot be selected in Spark.

      Solution

      1. Step 1: Check syntax for nested field access

        Spark uses dot notation like info.age, not dash.
      2. Step 2: Understand error cause

        Using info-age is invalid syntax causing an error.
      3. Final Answer:

        Using a dash (-) instead of dot (.) to access nested fields. -> Option A
      4. Quick Check:

        Nested field access = dot notation [OK]
      Hint: Use dot, not dash, to access nested JSON fields [OK]
      Common Mistakes:
      • Using dash instead of dot for nested fields
      • Assuming nested fields can't be selected
      • Ignoring error message details
      5. You have a JSON file with nested arrays like this:
      [{"id": 1, "scores": [10, 20, 30]}, {"id": 2, "scores": [15, 25]}]
      How can you transform this DataFrame to have one row per score with columns id and score?
      hard
      A. Use df.select("id", "scores") without explode.
      B. Use df.select("id", explode("scores").alias("score")) to flatten the array.
      C. Use df.groupBy("id").count() to count scores.
      D. Use df.withColumn("score", array("scores")) to copy scores.

      Solution

      1. Step 1: Understand array flattening

        The explode() function creates a new row for each element in the array.
      2. Step 2: Apply explode to nested array

        Using df.select("id", explode("scores").alias("score")) flattens scores into separate rows.
      3. Final Answer:

        Use df.select("id", explode("scores").alias("score")) to flatten the array. -> Option B
      4. Quick Check:

        Flatten nested arrays = explode() [OK]
      Hint: Use explode() to flatten nested arrays into rows [OK]
      Common Mistakes:
      • Not using explode and keeping arrays nested
      • Using groupBy() instead of explode()
      • Trying to copy arrays without flattening
      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