是否有一种巧妙的方法将R函数应用于SparkR数据框的每一行?我希望能够使用preProcess
库中的predict
和caret
等函数。
df <- SparkR::createDataFrame(sqlContext, mtcars)
rdd <- SparkR:::toRDD(df)
processed.rdd <- SparkR:::map(rdd, preProcess)
数据框正如我所料,但RDD中的数据格式已更改为列列表。
> first(df)
mpg cyl disp hp drat wt qsec vs am gear carb
1 21 6 160 110 3.9 2.62 16.46 0 1 4 4
> first(rdd)
$mpg
[1] 21
$cyl
[1] 6
...
和preProcess
无法处理此格式:
> processed.rdd <- SparkR:::map(rdd, preProcess)
Error in UseMethod("preProcess") :
no applicable method for 'preProcess' applied to an object of class "list"
Calls: source ... func -> FUN -> f -> func -> lapply -> lapply -> FUN
Execution halted