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

Replace all values of a column in a dataframe with pyspark

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

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

此处我想将column_name列中的所有值替换为10。在 pandas 这可以通过 df['column_name']=10。我不知道如何在 Spark 中做同样的事情。

您可以使用 UDF 来替换值。但是,您可以使用柯里化来支持不同的值。

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")))

使用 lit 可能更容易,如下所示:

from pyspark.sql.functions import lit
new_df = df.withColumn('column_name', lit(10))