Sử dụng litsẽ 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. whencó 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 otherwisekế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