对于 Azure Databricks 的世界来说,SparkR 的使用仍然很陌生,即使对于非常简单的任务,SparkR 的使用对我来说仍然非常模糊......
我花了很长时间才找到如何计算不同值的方法,但我不确定这是正确的方法:
library(SparkR)
sparkR.session()
DW <- sql("select * from db.mytable")
nb.var <- head(summarize(DW, n_distinct(DW$VAR)))
我以为我找到了,但是nb.per不是一个对象,但仍然是一个数据框......
class(nb.per)
[1] "data.frame"
我尝试过:
nb.per <- as.numeric(head(summarize(DW, n_distinct(DW$PERIODE))))
看起来不错,但我很确定有更好的方法来实现这一目标?
谢谢!
最佳答案
既然您正在使用 Spark SQL,一个非常简单的方法就是这样做:
nb.per <- `[[`(SparkR::collect(SparkR::sql("select count(distinct VAR) from db.mytable")), 1)
.
并使用 SparkR API,例如:
DW <- SparkR::tableToDF("db.mytable")
nb.per <- `[[`(SparkR::collect(SparkR::agg(DW, SparkR::countDistinct(SparkR::column("VAR")))), 1)
关于r - 如何将 SparkR 结果存储到 R 对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70681746/