DP-700 Monitor and Optimize an Analytics Solution Practice Question
Exhibit
{
"spark.driver.memory": "4g",
"spark.executor.memory": "4g",
"spark.executor.cores": "2",
"spark.dynamicAllocation.enabled": "true",
"spark.dynamicAllocation.maxExecutors": "10"
}Refer to the exhibit. You are reviewing the configuration for a Fabric Spark Environment. A job is failing with an 'OutOfMemoryError' during a large shuffle operation. Based on the configuration, which change would most likely resolve the issue?
⚠ Common exam trap
Test-takers frequently confuse dynamic allocation settings with per-executor memory configuration, incorrectly believing that adding more executors will automatically resolve individual shuffle memory limits.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Increase 'spark.executor.memory' to 8g or higher.
OutOfMemoryErrors during shuffle operations often indicate that the executor memory is insufficient for the volume of data being processed per task. While dynamic allocation helps with the number of executors, it does not increase the memory available to each individual executor. Increasing 'spark.executor.memory' provides the necessary headroom for complex joins and aggregations.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Increase 'spark.dynamicAllocation.maxExecutors' to 20.
Why it's wrong here
Increasing the maximum number of executors allows the job to scale out more, but it does not change the amount of memory available to any single executor. If a single task in a shuffle requires more than 4GB, adding more executors will not fix the OutOfMemoryError on that specific task.
- ✓
Increase 'spark.executor.memory' to 8g or higher.
Why this is correct
Raising the executor memory directly addresses the OutOfMemoryError by providing more space for the Spark execution and storage fractions. This is particularly important for shuffle operations where large amounts of data are buffered in memory before being written to disk or transferred across the network to other nodes.
- ✗
Decrease 'spark.executor.cores' to 1.
Why it's wrong here
Decreasing the cores would reduce the number of concurrent tasks per executor, which might indirectly reduce memory pressure. However, it is a sub-optimal solution that reduces parallelism and slows down the job. Increasing memory is the standard and more effective way to handle memory-intensive operations in Spark.
- ✗
Set 'spark.dynamicAllocation.enabled' to 'false'.
Why it's wrong here
Disabling dynamic allocation forces the job to use a fixed number of executors. This would likely make the problem worse or lead to inefficient resource usage, as it does not address the memory limit of the executors themselves, which is the root cause of the failure during the shuffle phase.
Visual reference
About these practice questions
This DP-700 question is part of Courseiva's 152-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Microsoft exam blueprint
This DP-700 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DP-700 exam.