← Experian Interview Insights

Experian·Data Scientist·Technical Phone Screen·Senior

Senior
Apr 2026

Summary

Interviewed for a Data Scientist role at Experian, and the technical round leaned heavily into big-data infrastructure, Spark internals, and cloud pipeline stuff. More engineering-flavored than I expected for a DS title, but not impossible.

Questions Asked (4)

Q1

What are the differences between Spark RDDs, DataFrames, and Spark SQL, and what are the advantages of each?

Technical Trade-offsSystem Design
Author's notes

I started with RDDs being the low-level building block, then moved to DataFrames having schema awareness and the Catalyst optimizer kicking in.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining each abstraction (RDD, DataFrame, Spark SQL) and then compare them across dimensions like type safety, optimization, and ease of use. Conclude with practical guidance on when to use each, tying it back to data science workflows and Experian's data-driven context.

Pro tip: Emphasize that DataFrames and Spark SQL share the same Catalyst optimizer and Tungsten execution engine, so performance is often similar; the choice is more about API preference and team skills. Mention that RDDs are still useful for low-level control and unstructured data, but for structured data, DataFrames/Spark SQL are preferred for their optimizations.

1. Define RDD

Explain that RDD (Resilient Distributed Dataset) is the fundamental, low-level abstraction in Spark, representing an immutable, partitioned collection of records with lineage for fault tolerance.

2. Define DataFrame

Describe DataFrame as a distributed collection of data organized into named columns, built on top of RDDs, providing a higher-level API with schema information and optimizations via Catalyst.

3. Define Spark SQL

Explain Spark SQL as a module for structured data processing that allows SQL queries on DataFrames and supports the DataFrame API, integrating relational processing with Spark's functional programming.

4. Compare key differences

Contrast them in terms of abstraction level, type safety, optimization, performance, and use cases. Highlight that RDDs lack schema and optimization, while DataFrames and Spark SQL benefit from Catalyst and Tungsten.

5. Discuss advantages and when to use each

Summarize advantages: RDDs for low-level control and unstructured data; DataFrames for structured data with optimizations and ease of use; Spark SQL for SQL-savvy users and declarative queries. Give examples relevant to data science.

Key Points to Mention

  • RDDs are low-level, lack schema, and require manual optimization; DataFrames and Spark SQL are high-level and optimized.
  • DataFrames and Spark SQL use Catalyst optimizer and Tungsten for performance, while RDDs do not.
  • DataFrames provide compile-time type safety in Scala/Java (Dataset API) but not in Python/R; Spark SQL is declarative and supports SQL queries.
  • RDDs are still useful for unstructured data, custom partitioning, and when fine-grained control is needed.
  • DataFrames are ideal for structured/semi-structured data and common data science tasks like aggregation, filtering, and ML pipelines.
  • Spark SQL is best for users comfortable with SQL and for integrating with BI tools; it can also be used programmatically.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

What advantages does Spark have over traditional MapReduce?

Technical Trade-offsSystem Design
Author's notes

In-memory processing was the obvious anchor here.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging MapReduce's foundational role in big data processing, then highlight Spark's key architectural improvements: in-memory computation, DAG-based execution, and unified APIs. Structure your answer around performance, ease of use, and versatility, and tie it back to how these advantages benefit data science workflows at a company like Experian.

Pro tip: Mention that Spark isn't always a replacement for MapReduce—for very large batch jobs that don't fit in memory, MapReduce can still be cost-effective. Showing you understand trade-offs demonstrates maturity.

1. Acknowledge MapReduce's strengths

Briefly recognize MapReduce's role in enabling scalable batch processing and its reliability on commodity hardware. This shows respect for the technology and sets a balanced tone.

2. Highlight Spark's in-memory computing

Explain that Spark caches intermediate data in memory, avoiding costly disk I/O between stages, which drastically speeds up iterative algorithms common in machine learning.

3. Discuss DAG execution and optimizations

Describe how Spark's directed acyclic graph (DAG) scheduler optimizes the entire workflow, whereas MapReduce rigidly alternates between map and reduce phases, leading to unnecessary overhead.

4. Emphasize unified APIs and ecosystem

Point out that Spark offers a unified stack for SQL, streaming, ML, and graph processing, making it easier for data scientists to switch between tasks without learning multiple systems.

5. Relate to data science use cases

Connect these advantages to practical data science scenarios, such as iterative model training, interactive data exploration, and real-time feature engineering, which are cumbersome in MapReduce.

Key Points to Mention

  • In-memory computation reduces disk I/O and speeds up iterative algorithms like gradient descent.
  • DAG-based execution engine optimizes the entire job plan, unlike MapReduce's strict map-reduce phases.
  • Unified APIs (Spark SQL, MLlib, GraphX, Structured Streaming) simplify development and reduce context switching.
  • Spark supports interactive data analysis and real-time streaming, while MapReduce is batch-only.
  • Fault tolerance via RDD lineage and checkpointing, similar to MapReduce but more efficient.
  • Spark can run on Hadoop YARN, Mesos, or Kubernetes, and can read from HDFS, S3, etc., offering flexibility.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

How does lazy evaluation work in Spark, and how does it help with execution efficiency?

System DesignAlgorithms & Data Structures
Author's notes

This one tripped me up a little because I knew the concept but struggled to articulate the boundary between transformations and actions cleanly under pressure.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining lazy evaluation in Spark—transformations are not executed until an action is called. Then explain how this allows Spark to optimize the entire execution plan, such as through pipelining and predicate pushdown, leading to better performance and resource efficiency.

Pro tip: Tie the explanation to a real-world scenario, like processing large datasets at Experian, and mention how lazy evaluation prevents unnecessary data shuffles and reduces I/O, which is critical for cost and speed.

1. Define Lazy Evaluation

Explain that in Spark, transformations (e.g., map, filter) are lazy—they build a lineage graph (DAG) but do not execute immediately. Execution is triggered only by actions (e.g., count, collect).

2. Describe the DAG and Optimization

Detail how Spark constructs a Directed Acyclic Graph (DAG) of transformations. The Catalyst optimizer and Tungsten engine then analyze this DAG to apply optimizations like predicate pushdown, column pruning, and pipelining.

3. Explain Efficiency Gains

Discuss how lazy evaluation enables Spark to combine multiple transformations into a single stage, reducing data shuffling and intermediate data storage. It also allows skipping unnecessary computations if the final result doesn't require them.

4. Contrast with Eager Evaluation

Briefly compare with eager evaluation (e.g., in MapReduce), where each step executes immediately, leading to more I/O and less optimization opportunity. Highlight how Spark's approach is more efficient for iterative algorithms and complex pipelines.

5. Connect to Practical Impact

Relate to real-world benefits: faster job execution, lower resource consumption, and cost savings, especially for large-scale data processing common in data science roles.

Key Points to Mention

  • Transformations vs. actions in Spark
  • Directed Acyclic Graph (DAG) and lineage
  • Catalyst optimizer and Tungsten engine
  • Predicate pushdown and column pruning
  • Pipelining and stage fusion
  • Reduction in data shuffling and I/O

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q4

Walk me through how you would submit and monitor Spark jobs on AWS EMR or a similar managed cluster service.

System DesignProduct Analytics & Metrics
Author's notes

Talked through spark-submit with the right master URL, setting executor memory and core configs, then checking the Spark UI for stage-level metrics.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Structure your answer as a clear end-to-end workflow: job submission, cluster configuration, monitoring, and optimization. Emphasize how you balance cost, performance, and reliability, and tie it back to real-world data science use cases like large-scale feature engineering or model training.

Pro tip: Mention that you use EMR's managed scaling and Spot instances to reduce costs, but also set up CloudWatch alarms for job failures and use Spark's event logs for post-mortem debugging. This shows you think about both efficiency and operational robustness.

1. Prepare and package the Spark application

Develop and test your Spark job locally or on a small cluster, then package it as a JAR or Python file with dependencies. Store the artifact in S3 and ensure it's versioned.

2. Configure and launch the EMR cluster

Define cluster specs (instance types, count, EMR version, Spark configs) based on data size and SLA. Use bootstrap actions to install libraries, and choose between transient or long-running clusters.

3. Submit the job with appropriate parameters

Use `spark-submit` via EMR Steps API, AWS CLI, or orchestration tools like Airflow. Pass runtime arguments, set executor/driver memory, and configure dynamic allocation.

4. Monitor job execution and cluster health

Track progress via Spark UI, YARN ResourceManager, and CloudWatch metrics (CPU, memory, disk). Set up alarms for failures, and use EMR logs for debugging.

5. Optimize and iterate

Analyze Spark event logs and metrics to tune partitioning, caching, and shuffle operations. Adjust cluster size or instance types for cost-performance balance.

Key Points to Mention

  • Use of EMR Steps or AWS CLI for job submission and automation
  • Cluster configuration: instance types, Spot instances, auto-scaling
  • Monitoring tools: Spark UI, YARN, CloudWatch, EMR logs
  • Cost optimization: transient clusters, Spot, right-sizing
  • Error handling and retry mechanisms
  • Integration with orchestration tools like Airflow or Step Functions

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.