Sử dụng lit
sẽ chuyển đổi tất cả các giá trị của cột thành giá trị nhất định.
Để làm điều đó chỉ với các giá trị không null của khung dữ liệu, bạn sẽ phải lọc các giá trị không null của mỗi cột và thay thế giá trị của bạn. when
có thể giúp bạn đạt được điều này.
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))
Điều này sẽ dẫn đến:
123c111n u l lc21n u l l1c311n u l l
Ngoài ra, nếu bạn muốn thay thế các giá trị null đó bằng một số giá trị khác, bạn có thể sử dụng otherwise
kết hợp với when
. Giả sử bạn muốn áp đặt 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))
Điều này sẽ dẫn đến:
123c1110c2101c3110