Sparklyr中缺少值

时间:2016-12-30 08:07:15

标签: r apache-spark missing-data sparklyr

我正在尝试计算Sparklyr中DataFrame中特定coulmn的缺失值,如下所示

 count(filter(subdata, isNull(subdata$metric)))
Source:   query [1 x 1]
Database: spark connection master=local[4] app=sparklyr local=TRUE

       n
   <dbl>
1 216360``

但返回的结果是数据帧中的总行数。我错过了什么。请指出它。

2 个答案:

答案 0 :(得分:0)

看起来您混合isNullsparklyr)和df <- data.frame(x=c(1, NA), y=c(-1, 2)) copy_to(sc, df, "df", overwrite=TRUE) %>% filter(is.na(x)) %>% count() (其他)API。据我所知,这是不受支持的,乍一看它看起来你的代码实际上应该抛出异常。

Source:   query [1 x 1]
Database: spark connection ...
      n
  <dbl>
1     1
{{1}}

答案 1 :(得分:0)

以下函数将使用NA计算给定列的sparklyr值的数量:

  count_na_values <- function(column) {
    # Count NA Values for a given column using sparklyr.
    #
    # Args:
    #   column: (char) name of column.
    na_count <- df %>%
      filter(is.na(rlang::sym(column))) %>%
      sdf_nrow()
    na_count
  }

注意-df应该属于"tbl_spark" "tbl_sql" "tbl_lazy" "tbl"类;例如

df <- tbl(sc, <table>)