【问题标题】:Replace empty columns to the value in another column in spark dataframe in r将空列替换为r中spark数据框中另一列中的值
【发布时间】:2019-12-20 23:07:32
【问题描述】:

我有一个 Spark 数据框,它由一行中的空值组成。我想将 null 替换为另一列中的值。

A       B
2017    209
2019    208
2016    NA
2016    NA
2018    209

预期输出:

A       B
2017    209
2019    208
2016    2016
2016    2016
2018    209

我尝试过使用

na.replace

ifelse(is.na(df$B), df$A, df$B)

df$B[is.na(df$B)] = as.character(df$A[is.na(df$B)]

但我得到一个没有变化的输出

【问题讨论】:

  • 在 R 中,df$B[is.na(df$B)] <- df$A[is.na(df$B)] 不确定在 spark 中是否有任何不同。
  • 似乎您正在尝试将这些数据框合并到 spark 中。看看下面是否有效stackoverflow.com/questions/53587175/…

标签: r apache-spark replace sparkr sparklyr


【解决方案1】:

您需要在 spark 数据帧上使用特定的 SparkR 函数。

isNullifelse

df = data.frame('A' = c(2017, 2019, 2016, 2016, 2018), 'B' = c(209, 208, NA, NA, 209))
spark_df = as.DataFrame(df)

spark_df$B = ifelse(isNull(spark_df$B), spark_df$A, spark_df$B)
head(spark_df)
     A    B
1 2017  209
2 2019  208
3 2016 2016
4 2016 2016
5 2018  209

【讨论】:

    【解决方案2】:

    使用 dplyr:

    library(dplyr)
    df <- df%>%
      mutate(B= ifelse(is.na(B),A,B))
    

    【讨论】:

      猜你喜欢
      • 2019-03-23
      • 2019-04-03
      • 1970-01-01
      • 2020-03-11
      • 2022-10-14
      • 2020-09-01
      • 1970-01-01
      • 2019-08-01
      • 2016-01-03
      相关资源
      最近更新 更多