Ah, espera, creo que lo tengo. Si hago algo como esto, parece funcionar:
null = u'\u0000'
new_df = df.withColumn('e', regexp_replace(df['e'], null, ''))
Y luego mapear a todas las columnas de cadenas:
string_columns = ['d','e']
new_df = df.select(
*(regexp_replace(col(c), null, '').alias(c) if c in string_columns else c for
c in df.columns)
)