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().
This answer is partially locked
Unlock the full expert answer with code examples and trade-offs
Practice real interviews with AI feedback, track progress, and get interview-ready faster.
Pro starts at $19/mo - cancel anytime
Trusted by 10,000+ aspiring data engineers
Get the most asked SQL questions with expert answers. Instant download.
No spam. Unsubscribe anytime.
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 →According to DataEngPrep.tech, this is one of the most frequently asked Spark/Big Data interview questions, reported at 2 companies. DataEngPrep.tech maintains a curated database of 1,863+ real data engineering interview questions across 7 categories, verified by industry professionals.