将函数应用于SparkR数据框的行

时间:2016-04-20 09:13:24

标签: r apache-spark spark-dataframe

是否有一种巧妙的方法将R函数应用于SparkR数据框的每一行?我希望能够使用preProcess库中的predictcaret等函数。

    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

0 个答案:

没有答案