Parquet format stores data by columns, making it faster and smaller to read and write. It helps analyze big data efficiently.
Parquet format and columnar storage in Apache Spark
df.write.parquet("path/to/save") df = spark.read.parquet("path/to/save")
Use write.parquet() to save a DataFrame in Parquet format.
Use read.parquet() to load Parquet files back into a DataFrame.
df as a Parquet file in the folder data/output.parquet.df.write.parquet("data/output.parquet")df2.df2 = spark.read.parquet("data/output.parquet")name and age columns to Parquet, saving space and time.df.select("name", "age").write.parquet("data/names_ages.parquet")
This program creates a small DataFrame with people data, saves it as a Parquet file, then reads it back and shows the content. It demonstrates how Parquet stores data efficiently and can be reused easily.
from pyspark.sql import SparkSession spark = SparkSession.builder.appName("ParquetExample").getOrCreate() # Create a simple DataFrame data = [(1, "Alice", 29), (2, "Bob", 31), (3, "Cathy", 25)] columns = ["id", "name", "age"] df = spark.createDataFrame(data, columns) # Save DataFrame as Parquet parquet_path = "./people.parquet" df.write.mode("overwrite").parquet(parquet_path) # Read the Parquet file back df_parquet = spark.read.parquet(parquet_path) # Show the loaded data print("Data loaded from Parquet:") df_parquet.show()
Parquet files store data by columns, so reading only needed columns is faster.
Parquet compresses data automatically, saving disk space.
Always use mode("overwrite") if you want to replace existing Parquet files.
Parquet format stores data column-wise for faster and smaller storage.
Use write.parquet() and read.parquet() in Spark to save and load data.
Parquet is great for big data and improves query speed and storage efficiency.
Practice
Solution
Step 1: Understand Parquet storage method
Parquet stores data in a columnar format, meaning data is saved column by column instead of row by row.Step 2: Benefits of columnar storage
This column-wise storage allows faster queries on specific columns and reduces storage size due to better compression.Final Answer:
It stores data column-wise, making queries faster and storage smaller. -> Option DQuick Check:
Columnar storage = faster queries + smaller files [OK]
- Thinking Parquet stores data as plain text
- Confusing row-wise with column-wise storage
- Assuming Parquet only stores in memory
df as a Parquet file?Solution
Step 1: Recall Spark DataFrame write syntax
In Spark, to save a DataFrame as Parquet, use thewrite.parquet()method.Step 2: Check each option
df.write.parquet('path/to/file') usesdf.write.parquet('path'), which is correct. Others use incorrect methods or formats.Final Answer:
df.write.parquet('path/to/file') -> Option BQuick Check:
Use write.parquet() to save DataFrame [OK]
- Using saveAsParquet which does not exist
- Saving with wrong format like CSV
- Using df.save() without write
df.write.parquet('data.parquet')
df2 = spark.read.parquet('data.parquet')
df2.printSchema()Solution
Step 1: Understand Parquet schema storage
Parquet files store both data and schema (column names and types).Step 2: Loading Parquet preserves schema
When reading withspark.read.parquet(), the schema is restored exactly as saved.Final Answer:
The schema will be the same as the original DataFramedf. -> Option AQuick Check:
Parquet stores schema = schema preserved [OK]
- Thinking Parquet files do not store schema
- Assuming schema is lost or incomplete
- Believing schema order changes on read
spark.read.parquet('file_path') but get an error. Which of the following is the most likely cause?Solution
Step 1: Check common read errors
Errors reading Parquet usually happen if the file path is wrong or file is missing.Step 2: Verify other options
Parquet files are supported by Spark, so B and C are wrong. D is unrelated because reading does not depend on saving in the same session.Final Answer:
The file path is incorrect or the file does not exist. -> Option AQuick Check:
File not found = read error [OK]
- Assuming Spark cannot read Parquet
- Using wrong read method like read.csv
- Thinking saving is required in same session
Solution
Step 1: Recall Parquet columnar storage benefits
Parquet stores data column-wise, allowing queries to read only selected columns.Step 2: Understand impact on performance
Reading fewer columns reduces disk I/O and speeds up queries, especially on large datasets.Final Answer:
Parquet stores data column-wise, so reading only needed columns is faster and uses less disk I/O. -> Option CQuick Check:
Columnar storage = selective fast reads [OK]
- Thinking Parquet stores data row-wise
- Believing Parquet converts data to JSON
- Assuming Parquet removes nulls automatically
Ready to prove it?
Pass the test and this pattern moves unknown
