【问题标题】:Missing values in SparklyrSparklyr 中的缺失值
【发布时间】:2017-05-14 13:17:51
【问题描述】:

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

 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``

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

【问题讨论】:

    标签: r apache-spark missing-data sparklyr


    【解决方案1】:

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

      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 &lt;- tbl(sc, &lt;table&gt;)

    【讨论】:

      【解决方案2】:

      看起来您混合了 SparkR (isNull) 和 sparklyr(其余)API。据我所知,这不受支持,乍一看,您的代码实际上应该引发异常。

      df <- data.frame(x=c(1, NA), y=c(-1, 2))
      copy_to(sc, df, "df", overwrite=TRUE) %>% filter(is.na(x)) %>% count()
      
      Source:   query [1 x 1]
      Database: spark connection ...
            n
        <dbl>
      1     1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-16
        • 2018-10-01
        • 2017-07-20
        • 2019-10-22
        • 2019-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多