Reviewed by Aditya Kumar · Last reviewed 2026-03-24
Kafka ingestion with Spark Structured Streaming follows a standard pattern: readStream → parse → writeStream with checkpoint. **Architectural decisions**: (1) **startingOffsets**: 'earliest' for backfill, 'latest' for tail-only; use JSON per-partition offsets for exactly-once...
This hard-level Spark/Big Data question appears frequently in data engineering interviews at companies like Goldman Sachs, Meesho. While less common, it tests deeper understanding that distinguishes strong candidates. Mastering the underlying concepts (partition, spark) will help you answer variations of this question confidently.
This is a senior-level question that tests architectural thinking. Lead with the high-level design, then drill into specifics. Discuss trade-offs explicitly - there is rarely one correct answer. Show awareness of scale, fault tolerance, and operational complexity.
Kafka ingestion with Spark Structured Streaming follows a standard pattern: readStream → parse → writeStream with checkpoint. Architectural decisions: (1) startingOffsets: 'earliest' for backfill, 'latest' for tail-only; use JSON per-partition offsets for exactly-once replay. (2) Checkpoint: Mandatory for exactly-once; stores offsets + write metadata; without it, duplicates or data loss on restart. (3) Schema evolution: Use mergeSchema on Delta sink or Schema Registry with from_json; validate schema compatibility before deploy. (4) Throughput tuning: maxOffsetsPerTrigger limits per-batch size; balance latency vs. backpressure. Scalability: Kafka partitions = Spark partitions; scale consumers with partition count. Cost: Checkpoint S3 requests; ensure minFilePerTrigger/batch size avoids small-file explosion. Code: df = spark.readStream.format("kafka").option("kafka.bootstrap.servers", "host:9092").option("subscribe", "topic").option("startingOffsets", "latest").load(); parsed = df.select(from_json(col("value").cast("string"), schema).alias("data")).select("data.*"); parsed.writeStream.format("delta").option("checkpointLocation", "/path").outputMode("append").start().
Red Flag: Not mentioning checkpoint for exactly-once or consumer group behavior. Pro-Move: 'We use dedicated checkpoint paths per environment, monitor lag via Kafka metrics, and have runbooks for reprocessing from specific offsets when schema migration required.'
Practice the 59 most asked data engineering questions at Meesho. Covers Behavioral, SQL, Spark/Big Data and more.
11 min read →Practice the 41 most asked data engineering questions at Goldman Sachs. Covers SQL, Spark/Big Data, Behavioral and more.
8 min read →Some links below are affiliate links. If you buy through them we may earn a small commission at no extra cost to you — it helps keep DataEngPrep free.
According to DataEngPrep.tech, this is one of the most frequently asked Spark/Big Data interview questions, reported at 2 companies. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.