답변:
를 사용 lit
하면 열의 모든 값이 주어진 값으로 변환됩니다.
널이 아닌 데이터 프레임 값에 대해서만이를 수행하려면 각 열의 널이 아닌 값을 필터링하고 값을 바꿔야합니다. when
당신이 이것을 달성하는 데 도움이 될 수 있습니다.
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))
결과는 다음과 같습니다.
당신이 너무 다른 값으로 그 널 (null) 값을 대체 할 경우에도, 당신은 사용할 수 otherwise
와 함께 when
. 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))
결과는 다음과 같습니다.
귀하의 문제에 따라 lit 사용하는 것이 더 쉽다고 생각합니다 . 이 시도-
from pyspark.sql.functions import lit
new_df = df.withColumn('column_name', lit(1))
그것이 도움이되기를 바랍니다!