如何将 SparkR 结果存储到 R 对象中?
How to store SparkR result into an R object?
对于 Azure Databricks 的世界来说仍然是一个新手,即使对于非常简单的任务,SparkR 的使用对我来说仍然非常模糊...
我花了很长时间才找到如何计算不同的值,我不确定这是正确的方法:
library(SparkR)
sparkR.session()
DW <- sql("select * from db.mytable")
nb.var <- head(summarize(DW, n_distinct(DW$VAR)))
我以为我找到了,但是nb.per不是一个对象,而是一个dataframe...
class(nb.per)
[1] "data.frame"
我试过了:
nb.per <- as.numeric(head(summarize(DW, n_distinct(DW$PERIODE))))
看起来不错,但我很确定有更好的方法来实现这个目标?
谢谢!
SparkR::sql
函数returns一个SparkDataFrame。
为了在 R 中将其用作 R data.frame,您可以简单地对其进行强制转换:
as.data.frame(sql("select * from db.mytable"))
既然你一直在使用 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)
对于 Azure Databricks 的世界来说仍然是一个新手,即使对于非常简单的任务,SparkR 的使用对我来说仍然非常模糊...
我花了很长时间才找到如何计算不同的值,我不确定这是正确的方法:
library(SparkR)
sparkR.session()
DW <- sql("select * from db.mytable")
nb.var <- head(summarize(DW, n_distinct(DW$VAR)))
我以为我找到了,但是nb.per不是一个对象,而是一个dataframe...
class(nb.per)
[1] "data.frame"
我试过了:
nb.per <- as.numeric(head(summarize(DW, n_distinct(DW$PERIODE))))
看起来不错,但我很确定有更好的方法来实现这个目标?
谢谢!
SparkR::sql
函数returns一个SparkDataFrame。
为了在 R 中将其用作 R data.frame,您可以简单地对其进行强制转换:
as.data.frame(sql("select * from db.mytable"))
既然你一直在使用 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)