用pyspark替换数据框中列的所有值

时间:2016-03-29 21:50:00

标签: python apache-spark pyspark spark-dataframe

我希望用特定值替换spark数据帧中列的所有值。我正在使用pyspark。我试过像 -

这样的东西

new_df = df.withColumn('column_name',10)

我希望将column_name列中的所有值替换为10。在熊猫中,这可以通过 df['column_name']=10。我无法弄清楚如何在Spark中做同样的事情。

2 个答案:

答案 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))