我正在尝试使用sparklyr获得分布式数据帧的最小值(更大的零值)。
在“常规” R代码中,这类似于:
min(df[df>0])
使用SparkR,我可以通过以下方式创建udf:
df <- as.DataFrame(faithful)
schema <- structType(
structField("eruptions", "double"),
structField("waiting", "double"),
structField("waiting_secs", "double"))
df1 <- dapply(df, function(x) {x <- cbind(x, min(x[x>0]) )}, schema)
但是我一直坚持在sparklyr中实现类似的东西。对于单列,我可以做:
df %>% filter('eruptions' > 0) %>% summarise(min = min('eruptions', na.rm = TRUE))
但是如何将其应用于具有大量列的tbl_spark?
任何帮助表示赞赏!