【发布时间】:2016-08-19 04:05:58
【问题描述】:
我需要对数据框的所有列组合执行数学运算。在 R 中,我会使用一个简单的嵌套 for 循环来做到这一点。但在 sparkR 中,我认为 for 循环不可用。你会建议我如何处理这个问题?
【问题讨论】:
-
了解您需要迭代的内容会有所帮助。在传统的 R 循环中,您可以调用 SparkR 函数。例如,您可以使用 R for 循环并遍历 R data.frames 列表,并将它们转换为 Spark DataFrames,并在它们上调用 SparkR glm() 函数。您是否正在尝试遍历 SparkR DataFrame?如果是这样,每一行都试图做什么,为什么需要 Spark 的分布式处理能力来对单行做某事?迭代意味着一次做一件事情 - Spark 是关于并行地做事情。
-
另外,请注意,如果您在 Spark DataFrame 上使用 R for() 循环进行迭代,它将一次选择一列。
for (item in mySparkDF) {str(item)}一次返回一列。 -
@SpiritusPrana - 我需要遍历列而不是行。并且每次迭代都是独立的,因此分布式环境应该是有用的。我想要做的一个例子是,如果我有一个 df 列 -col1,col2,col3 。我需要执行 -
sum(col1)-sum(col2); sum(col1) - sum(3);对于所有列的组合,依此类推
标签: sparkr