Bird
Raised Fist0
Apache Sparkdata~5 mins

Creating DataFrames from files (CSV, JSON, Parquet) in Apache Spark - Quick Revision & Summary

Choose your learning style10 modes available
Recall & Review
beginner
What is a DataFrame in Apache Spark?
A DataFrame is a table-like data structure in Spark that holds data in rows and columns, similar to a spreadsheet or SQL table. It allows easy data manipulation and analysis.
Click to reveal answer
beginner
How do you read a CSV file into a Spark DataFrame?
Use spark.read.csv('file_path', header=True, inferSchema=True) to load a CSV file. 'header=True' means the first row is column names, and 'inferSchema=True' lets Spark guess data types.
Click to reveal answer
intermediate
What is the difference between reading JSON and Parquet files in Spark?
JSON files are text-based and semi-structured, read with spark.read.json('file_path'). Parquet files are binary, columnar, and optimized for speed, read with spark.read.parquet('file_path').
Click to reveal answer
intermediate
Why use Parquet files instead of CSV or JSON in Spark?
Parquet files are faster to read and use less storage because they store data in a compressed, column-based format. This makes them better for big data processing.
Click to reveal answer
beginner
What does the 'inferSchema' option do when reading CSV files in Spark?
'inferSchema=True' tells Spark to automatically detect the data type of each column instead of treating all columns as strings.
Click to reveal answer
Which Spark method reads a JSON file into a DataFrame?
Aspark.read.parquet('file_path')
Bspark.read.json('file_path')
Cspark.read.csv('file_path')
Dspark.read.text('file_path')
What option should you set to True to use the first row as column names when reading a CSV?
AinferSchema=True
Bdelimiter=','
Cheader=True
Dschema=True
Which file format is columnar and optimized for fast reading in Spark?
AParquet
BJSON
CCSV
DTXT
What does 'inferSchema=True' do when reading CSV files?
AAutomatically detects column data types
BUses the first row as data
CSkips empty rows
DReads the file faster
Which method reads Parquet files in Spark?
Aspark.read.text()
Bspark.read.json()
Cspark.read.csv()
Dspark.read.parquet()
Explain how to create a Spark DataFrame from a CSV file including important options.
Think about telling Spark where the file is and how to treat the first row and data types.
You got /4 concepts.
    Describe the advantages of using Parquet files over CSV or JSON in Spark.
    Focus on speed and storage benefits.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of creating a DataFrame from a file in Apache Spark?
      easy
      A. To write data back to a file
      B. To organize data in rows and columns for easy analysis
      C. To delete data from the file system
      D. To convert data into plain text format

      Solution

      1. Step 1: Understand DataFrame concept

        A DataFrame is a table-like structure with rows and columns used for data analysis.
      2. Step 2: Purpose of loading files

        Loading files into DataFrames allows Spark to process and analyze data efficiently.
      3. Final Answer:

        To organize data in rows and columns for easy analysis -> Option B
      4. Quick Check:

        DataFrames = organized data [OK]
      Hint: DataFrames = tables for easy data work [OK]
      Common Mistakes:
      • Confusing DataFrame creation with file writing
      • Thinking DataFrames delete files
      • Assuming DataFrames convert data to plain text
      2. Which of the following is the correct syntax to load a CSV file into a Spark DataFrame?
      easy
      A. spark.read.format('csv').load('file.csv')
      B. spark.read.load('file.csv', format='csv')
      C. spark.load('csv', 'file.csv')
      D. spark.read.csv('file.csv')

      Solution

      1. Step 1: Recall Spark CSV loading syntax

        The standard way is to use spark.read.format('csv').load('filename').
      2. Step 2: Check each option

        spark.read.format('csv').load('file.csv') matches the correct syntax; others are incorrect or invalid methods.
      3. Final Answer:

        spark.read.format('csv').load('file.csv') -> Option A
      4. Quick Check:

        Use format('csv').load() for CSV [OK]
      Hint: Use spark.read.format('csv').load() for CSV files [OK]
      Common Mistakes:
      • Using spark.read.csv() without options
      • Trying spark.load() which doesn't exist
      • Passing format as a keyword argument in load()
      3. Given the following code, what will be the schema of the DataFrame?
      df = spark.read.format('json').load('people.json')
      df.printSchema()

      Assuming 'people.json' contains records like {"name": "Alice", "age": 30}.
      medium
      A. root |-- name: string (nullable = true) |-- age: long (nullable = true)
      B. root |-- name: integer (nullable = true) |-- age: string (nullable = true)
      C. root |-- name: string (nullable = false) |-- age: integer (nullable = false)
      D. root |-- name: string (nullable = true) |-- age: string (nullable = true)

      Solution

      1. Step 1: Understand JSON schema inference

        Spark infers types from JSON: "name" is string, "age" is number (long).
      2. Step 2: Check nullability and types

        By default, fields are nullable. Age inferred as long (integer type in Spark).
      3. Final Answer:

        root |-- name: string (nullable = true) |-- age: long (nullable = true) -> Option A
      4. Quick Check:

        JSON fields inferred correctly [OK]
      Hint: JSON fields infer types automatically [OK]
      Common Mistakes:
      • Assuming age is string instead of long
      • Thinking fields are non-nullable by default
      • Confusing integer with string types
      4. What is wrong with this code snippet to load a Parquet file?
      df = spark.read.format('parquet').load('data.parquet')
      df.show()

      Assuming 'data.parquet' exists and is valid.
      medium
      A. You must specify schema before loading Parquet files
      B. The format should be 'parq' instead of 'parquet'
      C. The load method requires a file extension in the path
      D. Nothing is wrong; this code will load and show the DataFrame correctly

      Solution

      1. Step 1: Check Parquet loading syntax

        Using spark.read.format('parquet').load('file') is correct and standard.
      2. Step 2: Validate assumptions

        If the file exists and is valid, df.show() will display the data without error.
      3. Final Answer:

        Nothing is wrong; this code will load and show the DataFrame correctly -> Option D
      4. Quick Check:

        Correct Parquet load syntax [OK]
      Hint: Parquet loads with format('parquet').load() [OK]
      Common Mistakes:
      • Using wrong format string like 'parq'
      • Thinking schema is mandatory for Parquet
      • Believing file extension is required in load()
      5. You want to load a CSV file with a header and infer the schema automatically. Which code snippet correctly achieves this?
      hard
      A. spark.read.format('csv').load('data.csv').option('header', 'true').option('inferSchema', 'true')
      B. spark.read.csv('data.csv', header=True, inferSchema=True)
      C. spark.read.format('csv').option('header', 'true').option('inferSchema', 'true').load('data.csv')
      D. spark.read.load('data.csv').option('header', 'true').option('inferSchema', 'true')

      Solution

      1. Step 1: Understand CSV options usage

        Options like header and inferSchema must be set before load() when using format().
      2. Step 2: Analyze each option

        spark.read.format('csv').option('header', 'true').option('inferSchema', 'true').load('data.csv') sets options correctly before load(). spark.read.csv('data.csv', header=True, inferSchema=True) uses invalid syntax for Spark. spark.read.format('csv').load('data.csv').option('header', 'true').option('inferSchema', 'true') sets options after load(), which is wrong. spark.read.load('data.csv').option('header', 'true').option('inferSchema', 'true') misses format('csv').
      3. Final Answer:

        spark.read.format('csv').option('header', 'true').option('inferSchema', 'true').load('data.csv') -> Option C
      4. Quick Check:

        Set options before load() [OK]
      Hint: Set CSV options before load() with format('csv') [OK]
      Common Mistakes:
      • Setting options after load() call
      • Using Python-style keyword arguments in Spark
      • Not specifying format('csv') before load()
      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