如何在 sparklyr 中查找缺少数据的列
how to find colums having missing data in sparklyr
示例样本数据
Si K Ca Ba Fe Type
71.78 0.06 8.75 0 0 1
72.73 0.48 7.83 0 0 1
72.99 0.39 7.78 0 0 1
72.61 0.57 na 0 0 na
73.08 0.55 8.07 0 0 1
72.97 0.64 8.07 0 na 1
73.09 na 8.17 0 0 1
73.24 0.57 8.24 0 0 1
72.08 0.56 8.3 0 0 1
72.99 0.57 8.4 0 0.11 1
na 0.67 8.09 0 0.24 1
我们可以使用以下代码将数据加载到sparklyr
sdf_copy_to(sc,sampledata)
我正在寻找 returns 具有 NA 值的列的查询
例如像
si k ca fe
1 1 1 2
由于 tbl_spark
实现以及 Spark 和 R 语义的不兼容性,这个问题实际上有点棘手。即使可以应用 colSums
,Spark SQL 也不允许布尔值和数字之间的隐式转换。这意味着您必须显式应用 as.numeric
:
library(dplyr)
sampledata <- copy_to(sc, data.frame(x=c(1, NA, 2), y=c(NA, 2, NA), z=42))
sampledata %>%
mutate_all(is.na) %>%
mutate_all(as.numeric) %>%
summarize_all(sum)
# Source: lazy query [?? x 3]
# Database: spark_connection
x y z
<dbl> <dbl> <dbl>
1 1 2 0
示例样本数据
Si K Ca Ba Fe Type
71.78 0.06 8.75 0 0 1
72.73 0.48 7.83 0 0 1
72.99 0.39 7.78 0 0 1
72.61 0.57 na 0 0 na
73.08 0.55 8.07 0 0 1
72.97 0.64 8.07 0 na 1
73.09 na 8.17 0 0 1
73.24 0.57 8.24 0 0 1
72.08 0.56 8.3 0 0 1
72.99 0.57 8.4 0 0.11 1
na 0.67 8.09 0 0.24 1
我们可以使用以下代码将数据加载到sparklyr
sdf_copy_to(sc,sampledata)
我正在寻找 returns 具有 NA 值的列的查询 例如像
si k ca fe
1 1 1 2
由于 tbl_spark
实现以及 Spark 和 R 语义的不兼容性,这个问题实际上有点棘手。即使可以应用 colSums
,Spark SQL 也不允许布尔值和数字之间的隐式转换。这意味着您必须显式应用 as.numeric
:
library(dplyr)
sampledata <- copy_to(sc, data.frame(x=c(1, NA, 2), y=c(NA, 2, NA), z=42))
sampledata %>%
mutate_all(is.na) %>%
mutate_all(as.numeric) %>%
summarize_all(sum)
# Source: lazy query [?? x 3]
# Database: spark_connection
x y z
<dbl> <dbl> <dbl>
1 1 2 0