如何在SparkR中对数据帧的每一行执行一些第三方计算

时间:2016-01-04 15:22:47

标签: r apache-spark sparkr

我有一个R数据框,我通过调用createDataFrame函数将其转换为RDD。 RDD有多个列,应该用于计算新列。 我需要通过SparkR调用RQuantLib R包的AmericanOption函数,并将返回值更新为同一数据帧的新列。通常我们可以使用foreach在其他编程语言中执行此操作,但不知道我们如何在SparkR中执行此操作,因为已记录的https://spark.apache.org/docs/1.5.1/api/R/

还缺少map函数

1 个答案:

答案 0 :(得分:0)

一种方法是

  1. 将RDD转换为RDDLoL,列表列表,
  2. SparkR :::将RDDLoL并行化为parallelRDD
  3. 呼叫 res< - collect(SparkR ::: lapply(parallelRDD,foo))
  4. 将res附加到原始数据框的新列。