我使用的是Spark 1.6.1和Python 2.7
我试图找出如何为数据框新添加的列指定默认值。在这种情况下,我有一个名为df1的数据框,其中包含
+-------+----+
|user_id| age|
+-------+----+
| 10000| 45|
| 10013| 40|
| 10021|Null|
| 10025| 50|
| 10051| 31|
+-------+----+
现在我想添加一个名为age2的新列,它只有一个简单的函数年龄+ 1
>>> df1 = df1.withColumn("age2", df1["age"]+1)
+-------+----+----+
|user_id| age|age2|
+-------+----+----+
| 10000| 45| 46|
| 10013| 40| 41|
| 10021|Null|Null|
| 10025| 50| 51|
| 10051| 31| 32|
+-------+----+----+
有没有办法可以为age2指定一个默认值,这样当年龄为null时,我可以返回类似于1的内容,而不是为age2返回null。
+-------+----+----+
|user_id| age|age2|
+-------+----+----+
| 10000| 45| 46|
| 10013| 40| 41|
| 10021|Null| 1|
| 10025| 50| 51|
| 10051| 31| 32|
+-------+----+----+
我知道我可以使用UDF来执行此操作,但我想知道是否有内置方法来执行此操作。
答案 0 :(得分:0)
我建议您使用fillna
功能。当前正在进行创建新列。接下来使用fillna function
>>> df1 = df1.withColumn("age2", df1["age"]+1)
>>> df1 = df1.na.fill({'age2': 1})