2016-03-29 8 views
3

Я ищу, чтобы заменить все значения столбца в блоке данных искры с определенным значением. Я использую pyspark. Я пытался что-то вроде -Заменить все значения столбца в фрейме данных с помощью pyspark

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

Здесь я хочу, чтобы заменить все значения в столбце column_name к 10. В пандах это может быть сделано df['column_name']=10. Я не могу понять, как сделать то же самое в Spark.

ответ

2

Это может быть проще в использовании lit следующим образом:

from pyspark.sql.functions import lit 
new_df = df.withColumn('column_name', lit(10)) 
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"))) 
Смежные вопросы