SparkR dapply无法正常工作

时间:2016-08-14 10:02:04

标签: sparkr

我试图在应用于火花数据帧的函数中调用lapply。根据文档,它可能是自Spark 2.0以来的。

wrapper = function(df){
     out = df
     out$len <- unlist(lapply(df$value, function(y) length(y)))
     return(out)
}
# dd is Spark Data Frame with one column (value) of type raw
dapplyCollect(dd, wrapper)

它返回错误:

Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...): org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 37.0 failed 1 times, most recent failure: Lost task 0.0 in stage 37.0 (TID 37, localhost): org.apache.spark.SparkException: R computation failed with
 Error in (function (..., deparse.level = 1, make.row.names = TRUE)  : 
  incompatible types (from raw to logical) in subassignment type fix

以下工作正常:

wrapper(collect(dd))

但我们希望计算在节点上运行(而不是在驱动程序上)。

可能是什么问题?有一个related question,但它没有帮助。 感谢。

1 个答案:

答案 0 :(得分:0)

您需要添加架构,因为如果输出的列与输入的模式相同,则只能默认。