gpt4 book ai didi

sparkr - 在 SparkR 中使用应用函数

转载 作者:行者123 更新时间:2023-12-04 12:57:38 32 4
gpt4 key购买 nike

我目前正在尝试使用 sparkR 1.5.1 版实现一些功能。我看过较旧的(1.3 版)示例,其中人们在 DataFrames 上使用了 apply 函数,但看起来这不再直接可用。例子:

x = c(1,2)
xDF_R = data.frame(x)
colnames(xDF_R) = c("number")
xDF_S = createDataFrame(sqlContext,xDF_R)

现在,我可以在 data.frame 对象上使用函数 sapply
xDF_R$result = sapply(xDF_R$number, ppois, q=10)

当我在 DataFrame 上使用类似的逻辑时
xDF_S$result = sapply(xDF_S$number, ppois, q=10)

我收到错误消息“as.list.default(X) 中的错误:
没有将这个 S4 类强制转换为向量的方法"

我能以某种方式做到这一点吗?

最佳答案

这可以通过 user defined functions in Spark 2.0 实现.

wrapper = function(df){
+ out = df
+ out$result = sapply(df$number, ppois, q=10)
+ return(out)
+ }
> xDF_S2 = dapplyCollect(xDF_S, wrapper)
> identical(xDF_S2, xDF_R)
[1] TRUE

请注意,您需要一个这样的包装函数,因为您不能直接传递额外的参数,但将来可能会发生变化。

关于sparkr - 在 SparkR 中使用应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33286030/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com