我希望用特定值替换spark数据帧中列的所有值。我正在使用pyspark。我试过像 -
这样的东西 new_df = df.withColumn('column_name',10)
我希望将column_name
列中的所有值替换为10
。在熊猫中,这可以通过
df['column_name']=10
。我无法弄清楚如何在Spark中做同样的事情。
答案 0 :(得分:2)
您可以使用UDF替换值。但是,您可以使用currying来支持不同的值。
from pyspark.sql.functions import udf, col
def replacerUDF(value):
return udf(lambda x: value)
new_df = df.withColumnRenamed("newCol", replacerUDF(10)(col("column_name")))
答案 1 :(得分:2)
使用lit
可能更容易,如下所示:
from pyspark.sql.functions import lit
new_df = df.withColumn('column_name', lit(10))