【问题标题】:Replace all values of a column in a dataframe with pyspark用 pyspark 替换数据框中列的所有值
【发布时间】:2016-03-30 15:52:29
【问题描述】:
我希望用特定值替换 spark 数据框中列的所有值。我正在使用 pyspark。我尝试了类似的东西 -
new_df = df.withColumn('column_name',10)
这里我想将column_name列中的所有值替换为10。在熊猫中,这可以通过
df['column_name']=10。我不知道如何在 Spark 中做同样的事情。
【问题讨论】:
标签:
python
apache-spark
pyspark
spark-dataframe
【解决方案1】:
使用lit 可能更容易,如下所示:
from pyspark.sql.functions import lit
new_df = df.withColumn('column_name', lit(10))
【解决方案2】:
您可以使用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")))