如何按 SparkR 中的行数并行化数据帧?

how to parallelize the data frame by number of rows in SparkR?

我需要在将数据委托给 Spark worker 时并行化 SparkR 中的数据帧。

代码片段:

parallelRDD <-SparkR:::parallelize(sc,dataFrame)

在控制台打印如下信息。

context.R: A data frame is parallelized by columns.

每一行对于数据处理都是原子的。我已将结果的数据框转置为数千列。现在每一列对于数据处理都是原子的。但是将单列委托给 spark worker 似乎不是一个好的策略,因为没有明显的性能提升。

是否可以并行化一组行,以便可以在 spark worker 上处理这些数据行?

你只需要这样的东西:

createDataFrame(sqlContext, dataFrame) %>% SparkR:::map(identity) 

免责声明:我不鼓励使用内部 API。请务必阅读 SPARK-7230 以了解为什么 RDD API 没有包含在 SparkR 的第一个正式版本中。