【发布时间】:2016-08-02 08:55:24
【问题描述】:
我是 Spark 的新手,现在我正在使用 SparkR 运行一些 ML 算法。我经常对本地 R 数据框和 SparkR 数据框感到困惑。本地 R 数据框和 SparkR 数据框有什么区别?他们之间是什么关系?它们和RDD有什么关系?
提前致谢。
【问题讨论】:
标签: r apache-spark machine-learning
我是 Spark 的新手,现在我正在使用 SparkR 运行一些 ML 算法。我经常对本地 R 数据框和 SparkR 数据框感到困惑。本地 R 数据框和 SparkR 数据框有什么区别?他们之间是什么关系?它们和RDD有什么关系?
提前致谢。
【问题讨论】:
标签: r apache-spark machine-learning
RDD 的行为与数据帧不同。 RDD 存在于管道中,其中每个都是前一个的迭代,每次您对其应用函数时。每次迭代都不会单独存储在内存中,只是作为最后一次的迭代存在,其中 RDD 只知道使它到达它所在位置的函数。粗略地说,您必须对 lambda 函数等采取函数式方法,而 for 循环之类的操作不适用于 RDD。通过以这种方式存储数据,Spark 比更老式的 map-reduce 包要快得多。
与本地帧相比,SparkR 数据帧也将具有不同的可用功能。我假设(因为这是 pyspark 数据帧和本地 pandas 数据帧的情况),用于附加新列并将新数据帧保存到磁盘的函数不同。例如,对于 pyspark 数据帧,您可以使用 withColumn() 函数来添加列,而不是更传统的 python。因此,一般而言,您通常在本地框架上使用的某些功能不适用于 SparkR 框架,因为 SparkR 框架大多仅限于 spark 库。
【讨论】: