将类型 "double" 强制转换为 sparkR 中的整数

Coerce type "double" to a integer in sparkR

我在 sparkR 'u' 中有一个 DataFrame Conains ID = 1 1 1 1... 和年龄 = 21 23 33 21 ... 取 'ages' 的总和,我这样做

sumage<-agg(u, ages="sum")

现在sumage是一个double类型的DataFrame。我想把总和作为整数,所以我试试这个

as.numeric(sumage)

但我收到这条消息:"sumu<- agg(u, amount_spent="sum") 无法将类型 'S4' 强制转换为类型 'double'"

的向量

对此可以做些什么?

有两种可能的解决方案。由于 sumage 实际上是一个只有一项的 DataFrame,您可以轻松地收集它并使用 as.integer

localSumage <- collect(sumage)[1,1]

这是一个数字类型。如果需要,您可以使用

将其转换为整数
localSumage <- as.integer(localSumage)

或者您可以使用

在 SparkR 中将类型转换为整数
sumage$intergerAge <- cast(sumage[[1]],"integer")

但请注意,它仍然是一个带有整数列的 DataFrame,其中存储了您的总和。