java - 如果在 Apache Spark Java 中为空,则用另一个值替换一行的值

标签 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 为 null,则使用 current_date()

我可以让 Spark 来做还是我应该手动做?

最佳答案

这里你只需要一个合并:

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

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

关于java - 如果在 Apache Spark Java 中为空,则用另一个值替换一行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38274577/

相关文章:

java - 对非常大的数字使用 BigDecimal

scala - Spark scala 将 Unix 时间转换为时间戳失败

Python:将嵌套字典列出到 pandas DataFrame 问题

python - 有没有更快的方法来遍历和删除 Pandas 数据框中的特定行?

java - 如何在JAVA中获取时间戳的偏移量

java - .java 文件无法使用 mac 终端常用 java 命令正确运行

java - 没有断点的调试命中 - Eclipse

scala - 如何对rdd格式的字符串列求和?

python - PySpark 新列,从整数列表中选择值

python - 获取数据帧中最后一个值时出现 KeyError