如果在Apache Spark Java中为null,则将行的值替换为另一行

时间:2016-07-08 20:04:17

标签: java apache-spark dataframe apache-spark-sql

我在Java中使用Apache Spark 1.6.2。

我有一个包含以下内容的DataFrame:

  • creation_date字段中的日期
  • close_date字段中的结束日期。

如果业务未关闭,则close_date中的值为null。

我想:

  • 在我的DataFrame中添加一个名为last_date_business的额外列
  • 用close_date
  • 的值填充它
  • 如果close_date为null,则使用current_date()

我可以请求Spark执行此操作,还是应该手动执行?

1 个答案:

答案 0 :(得分:3)

这里所需要的只是coalesce

import static org.apache.spark.sql.functions.*;

df.withColumn("last_date_business", coalesce(col("close_date"), current_date()));