To make your preparation easier for the Cloudera CDP-3002 exam, we strongly recommend you to use our Premium Cloudera Data Engineer Certification Practice Exam. According to our survey with certified candidates, you can easily score more than 85% in your actual Cloudera Data Engineer (CDP-3002) exam if you score 100% in our premium certification practice exams.
01. A Spark pipeline at Thistlewood Analytics builds a DataFrame through dozens of chained transformations across multiple iterative stages, and the job's performance is degrading because Spark must track an increasingly long lineage graph for fault recovery, even though the intermediate results are cached in memory.
Which technique addresses this long-lineage problem in a way that plain caching does not?
a) Increasing spark.executor.memory so the cached data and its full lineage metadata both fit comfortably without triggering eviction.
b) Switching the storage level from MEMORY_ONLY to MEMORY_AND_DISK so cached partitions spill to disk instead of ever being recomputed from lineage again, eliminating the recovery overhead entirely.
c) Calling cache() a second time on the same DataFrame to reinforce the existing in-memory copy and shorten the lineage Spark has to track.
d) Calling checkpoint() to write the DataFrame to reliable storage and truncate its lineage, so recovery no longer depends on replaying the full chain of prior transformations.
02. Before writing results out, an engineer at Kestrel Motors wants to reduce a DataFrame from 800 partitions down to 40, and wants to avoid a full shuffle if at all possible since the data is already reasonably balanced across partitions.
Which call best fits this goal?
a) df.repartition(40, col("region")), because hash-partitioning by a column is required any time the number of partitions is being reduced rather than increased.
b) df.coalesce(40), because it merges existing partitions on the same executors without triggering a full shuffle across the cluster.
c) df.persist().coalesce(40), because coalesce() only takes effect on a DataFrame that has first been cached in memory.
d) df.repartition(40), because it always produces a more evenly balanced result than coalesce() while using comparable cluster resources for a partition-count reduction.
03. A DAG at Nimbus Health needs to trigger an existing CDE Spark job to run as one step in a larger pipeline, and have that step's status tracked as part of the pipeline.
Which CDE-specific Airflow operator is designed for this purpose?
a) A generic Bash-style operator that shells out to an undocumented internal command outside of CDE's supported operator set, bypassing CDE's own job submission and tracking mechanisms entirely.
b) SQLExecuteQueryOperator, which is designed for running Hive or Impala queries rather than triggering a CDE Spark job.
c) CDERunJobOperator, which executes a CDE job across the DAG's virtual cluster and reports its status back to the pipeline.
d) CDWOperator, a deprecated operator that Cloudera's documentation directs teams away from for this and other purposes.
04. Ashcombe Media needs to combine a legacy campaigns DataFrame with a newer campaigns DataFrame. The two DataFrames have the same set of columns, but the columns are in a different order, and the newer DataFrame also includes one extra optional column the legacy DataFrame lacks.
Which approach correctly combines the two DataFrames without silently misaligning column values?
a) Use unionByName(allowMissingColumns=True), which aligns columns by name and fills the missing optional column with nulls where it does not exist.
b) Convert both DataFrames to RDDs and concatenate them, since RDD concatenation automatically resolves column name and schema differences between the two sources.
c) Rename every column in both DataFrames to match a single fixed alphabetical order before applying union().
d) Use plain union(), since it always matches columns by name regardless of their position in each DataFrame.
05. An analyst at Copperline Freight wants to reproduce a report exactly as it would have appeared before a batch of corrections was applied to an Iceberg table last week.
Which two ways can an Iceberg time-travel query identify the point-in-time state to read?
(Choose two.)
a) By specifying the name of the Spark executor that originally wrote the correction batch.
b) By specifying the identifier of a specific snapshot to read the table exactly as it existed at that snapshot.
c) By specifying the exact byte offset within the table's current data files where the corrections begin.
d) By specifying a timestamp corresponding to the desired point in the table's history.
06. A new engineer at Marrow Bay Fisheries partitions a catch-records table by vessel_registration_id, a column with roughly ninety thousand distinct values, expecting this to speed up queries. After deployment, simple queries against the table become slower, and file listing during planning takes noticeably longer than before.
What is the most likely explanation?
a) The table needs to be bucketed rather than partitioned on any column at all, since bucketing is strictly faster than partitioning in every case regardless of the column chosen.
b) The Hive metastore has silently corrupted the table's statistics and requires a full table rebuild before it can be queried correctly again.
c) The high-cardinality partition column produced an excessive number of small partition directories, increasing metadata and file-listing overhead during query planning.
d) Partitioning inherently degrades read performance for every table, regardless of which column is chosen as the partition key.
07. An engineer at Cobalt Analytics submits the same Spark application to a Kubernetes cluster twice: once with --deploy-mode client from a bastion host, and once with --deploy-mode cluster.
What is the key operational difference between these two runs?
a) In cluster mode the driver itself runs inside a pod on the Kubernetes cluster, while in client mode the driver runs on the machine that issued spark-submit, outside the cluster.
b) Client mode is only permitted for Spark SQL and DataFrame workloads, while cluster mode is required whenever an application submits raw RDD transformations directly.
c) Cluster mode requires disabling dynamic allocation for the entire application, while client mode is the only deploy mode compatible with elastic executor scaling.
d) In cluster mode executors are created ahead of time and reused across applications submitted later, while in client mode a completely fresh set of executor pods is always created for every single submission, no matter how similar.
08. A fact table at Solstice Analytics is partitioned by sale_date and joined to a small dimension table that is filtered to only the last 7 days.
Which optimization can Spark apply as a result of this join-plus-filter combination?
a) Spark converts the partitioned fact table into a bucketed table automatically to speed up the join.
b) Spark disables partition pruning whenever a join is present, relying only on caching to reduce scan cost.
c) Spark ignores the dimension table's filter entirely once a join is introduced, and always scans every partition of the fact table regardless of the filtered date range applied to the dimension side.
d) Spark can prune the fact table's partitions to only the dates present in the filtered dimension table, avoiding a full scan of the fact table.
09. Fernwood Media keeps two DataFrames: subscribers and cancellations, both keyed on subscriber_id. An analyst needs every row from subscribers whose subscriber_id has no matching row at all in cancellations, without including any columns from cancellations in the result.
Which join should the analyst use?
a) subscribers.join(cancellations, "subscriber_id", "inner")
b) subscribers.join(cancellations, "subscriber_id", "left_semi")
c) subscribers.join(cancellations, "subscriber_id", "left_anti")
d) subscribers.join(cancellations, "subscriber_id", "outer")
10. A table at BrightWave Retail is frequently filtered by region and frequently joined to another large table on customer_id.
Which combination best supports both access patterns?
a) Skip both partitioning and bucketing entirely for this table, since Spark does not support applying partitioning and bucketing together on the same underlying dataset for different columns.
b) Partition the table by region for filter pruning, and bucket it by customer_id to improve the join.
c) Partition the table by customer_id only, since partitioning always outperforms bucketing for any join.
d) Bucket the table by region only, since bucketing subsumes the benefit of partitioning for filtered queries.
Equip yourself with the best resources and practice exams to ace your Cloudera Data Engineer (CDP-3002) exam. Explore our comprehensive study materials and take the first step towards certification success.