我有 Pandas 背景,对 Spark 很陌生。我有一个数据框,其中有id
, dob
,age
作为列。我想从用户的年龄中获取他的年龄dob
(在某些情况age
下列为 NULL)。
+----+------+----------+
| id | age | dob |
+----+------+----------+
| 1 | 24 | NULL |
| 2 | 25 | NULL |
| 3 | NULL | 1/1/1973 |
| 4 | NULL | 6/6/1980 |
| 5 | 46 | |
| 6 | NULL | 1/1/1971 |
+----+------+----------+
Run Code Online (Sandbox Code Playgroud)
我想要一个新列来计算从dob
当前日期开始的年龄。
我尝试了这个,但没有得到任何结果:
df.withColumn("diff",
datediff(to_date(lit("01-06-2020")),
to_date(unix_timestamp('dob', "dd-MM-yyyy").cast("timestamp")))).show()
Run Code Online (Sandbox Code Playgroud)