回答:
を使用lit
すると、列のすべての値が指定された値に変換されます。
データフレームのnull以外の値に対してのみこれを行うには、各列のnull以外の値をフィルタリングし、値を置き換える必要があります。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))
それが役に立てば幸い!