Sparklyr 中的缺失值
Missing values in Sparklyr
我正在尝试计算 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``
但返回的结果是数据框中的总行数。我错过了什么吗?请指出。
看起来您混合了 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
以下函数将使用 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
应该是 class "tbl_spark" "tbl_sql" "tbl_lazy" "tbl"
;例如
df <- tbl(sc, <table>)
我正在尝试计算 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``
但返回的结果是数据框中的总行数。我错过了什么吗?请指出。
看起来您混合了 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
以下函数将使用 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
应该是 class "tbl_spark" "tbl_sql" "tbl_lazy" "tbl"
;例如
df <- tbl(sc, <table>)