用 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))
我希望用特定值替换 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))