2016-08-18 2 views
1

dapply을 사용하여 회선을 변환하는 아주 간단한 SparkR 프로그램을 작성하려고합니다. 내가 너무 많은 초등학교 실수를했다간단한 SparkR dapply 예제가 작동하지 않습니다.

Error in split.default(output, seq(nrow(output))) : 
    group length is 0 but data length > 0 
    at org.apache.spark.api.r.RRunner.compute(RRunner.scala:108) 
    at org.apache.spark.sql.execution.r.MapPartitionsRWrapper.apply(MapPartitionsRWrapper.scala:59) 
    at org.apache.spark.sql.execution.r.MapPartitionsRWrapper.apply(MapPartitionsRWrapper.scala:29) 
    at org.apache.spark.sql.execution.MapPartitionsExec$$anonfun$6.apply(objects.scala:178) 
    at org.apache.spark.sql.execution.MapPartitionsExec$$anonfun$6.apply(objects.scala:175) 

답변

2

:

lines <- read.text("/path/to/file.txt") 

resultingSchema <- structType(structField("line", "string")) 

linesmapped <- dapply(lines, function(line) { 
    y <- list() 
    y[[1]] <- paste(line[[1]], "1", sep = ":")  
}, resultingSchema) 

head(linesmapped) 

이것은 내가 오류는 다음과 같습니다 그러나, 나는 문제가 그것을 실행하고 있습니다. 나는이 다른 사람에게 유용 희망 (SparkR 문서는 순간에 매우 스파 스이기 때문에) : dapply와

lines <- read.text("/path/to/file.txt") 
resultingSchema <- structType(structField("value", "string")) 

ldf <- dapply(lines, function(x) {  
    x <- transform(x, value=paste(value, "$", sep="")) 
}, resultingSchema) 

head(collect(ldf)) 
0

기본 것은 dapply 내에서 함수가 dataframe 출력도 dataframe 될 것으로 기대 것을 기억하는 것입니다.

dapply 함수가 네이티브 R 데이터 프레임으로 전달되고 그에 따라 함수가 적용되는 것에 대해 생각해보십시오.

관련 문제