Die Verwendung lit
würde alle Werte der Spalte in den angegebenen Wert konvertieren.
Um dies nur für Nicht-Null-Werte des Datenrahmens zu tun, müssten Sie Nicht-Null-Werte jeder Spalte filtern und Ihren Wert ersetzen. when
kann Ihnen dabei helfen.
from pyspark.sql.functions import when
df.withColumn('c1', when(df.c1.isNotNull(), 1))
.withColumn('c2', when(df.c2.isNotNull(), 1))
.withColumn('c3', when(df.c3.isNotNull(), 1))
Dies würde führen zu:
123c111n u l lc21n u l l1c311n u l l
Wenn Sie diese Nullwerte auch durch einen anderen Wert ersetzen möchten, können Sie sie otherwise
in Kombination mit verwenden when
. Angenommen, Sie möchten dort unterstellen 0
:
from pyspark.sql.functions import when
df.withColumn('c1', when(df.c1.isNotNull(), 1).otherwise(0))
.withColumn('c2', when(df.c2.isNotNull(), 1).otherwise(0))
.withColumn('c3', when(df.c3.isNotNull(), 1).otherwise(0))
Dies würde führen zu:
123c1110c2101c3110