Explore Library
AI FundamentalsData Preprocessing and Feature Engineering

36 items

1

Coalesce Won't Increase Spark Partitions

Code Quiz
2

Distributed Feature Scaling and Shuffles in Spark

Quiz
3

Imputation Leakage and Downstream Bias

Code Quiz
4

Imputation Leakage and Downstream Bias

Quiz
5

Shuffles and Joins in Distributed Feature Engineering

Flashcard
6

Imputation Bias and Missingness Mechanisms

Flashcard
7

Partitioning, Shuffles, and Joins in Spark

Slides / Video
8

Imputation Bias in Missing Data

Slides / Video
9

Imputing Sentinel-Coded Missing Values

Code Quiz
10

Missing Data Mechanisms and Imputation

Quiz
11

Scaling Before the Train/Test Split

Code Quiz
12

Preventing Leakage in Scaled Feature Pipelines

Quiz
13

Feature Pipelines at Scale

Flashcard
14

Missing Data, Outliers & Data Quality

Flashcard
15

Feature Pipelines at Scale

Slides / Video
16

Missing Data, Outliers & Data Quality

Slides / Video
17

Mean Imputation With Sentinel Values

Code Quiz
18

Preventing Data Leakage in Imputation

Quiz
19

Scaling Train and Test Data

Code Quiz
20

Encoding High-Cardinality Categorical Features

Quiz
21

Feature Engineering & Encoding Essentials

Flashcard
22

Feature Engineering & Encoding Essentials

Slides / Video
23

Dropping Missing Rows in Pandas

Code Quiz
24

Handling Missing Data in Pandas

Quiz
25

Filtering a DataFrame with two conditions

Code Quiz
26

Filtering Rows in Pandas

Quiz
27

Handling Missing Data & Duplicates

Slides / Video
28

Pandas: Load, Filter & Select Data

Slides / Video
29

Handling Missing Data & Duplicates

Flashcard
30

Pandas: Loading, Filtering & Selecting Data

Flashcard
31

Encoding, Scaling & Transformations

Slides / Video
32

Handling Missing Data & Outliers

Slides / Video
33

Encoding, Scaling & Transformations

Flashcard
34

Handling Missing Data & Outliers

Flashcard
35

One-Hot Encoding a Category Column

Code Quiz
36

Detecting Outliers with IQR

Code Quiz
Code Quiz

Coalesce Won't Increase Spark Partitions

A subtle Spark bug where coalesce fails to increase parallelism before a scaling join.

Codepython
from pyspark.sql import functions as F
from pyspark.sql.functions import broadcast

# Source table read from a few large files -> ~8 input partitions
df = spark.read.parquet("s3://events/raw")

# Heavy filter drops ~90% of rows but keeps skewed key distribution
df = df.filter(F.col("active") == True)

# We want MORE parallelism for the feature-scaling stage below,
# so bump partitions up to 400 before the join.
df = df.coalesce(400)

# Per-key scaling stats to standardize the 'amount' feature
stats = (df.groupBy("user_id")
           .agg(F.mean("amount").alias("mu"),
                F.stddev("amount").alias("sd")))

scaled = (df.join(broadcast(stats), on="user_id")
            .withColumn("amount_z", (F.col("amount") - F.col("mu")) / F.col("sd")))

scaled.write.parquet("s3://events/scaled")

The scaling stage stays slow and single-threaded despite requesting 400 partitions. What is the bug?