【问题标题】:Why is sample() different in SparkR to R?为什么 SparkR 中的 sample() 与 R 不同?
【发布时间】:2016-09-13 22:14:37
【问题描述】:

我在 R 方面有一些经验,我正在学习 Spark 1.6.1,首先探索在 Spark 中实现 R。

我注意到 Spark 中 R sample() 命令的语法不同:

base::R: sample(x, size, replace)

Spark R:sample(DataFrame, withReplacement, fraction)

base::sample(x, size, replace) 仍然有效,但被 Spark R 版本掩盖。

当两者之间的大多数命令相同时,有谁知道这是为什么?

是否存在我应该使用一个与另一个的用例?

有没有人找到权威的 Spark R 和 base::R 区别列表?

谢谢!

【问题讨论】:

  • 有许多封装基本功能并改变它们的行为。我认为您应该阅读base::sampleSparkR::sample 的文档来回答您的一些问题。围绕它构建解决方案时,只需在您的 NAMESPACE 文件中使用 importFrom,然后使用您需要的那个。
  • 感谢您的评论@jangoreck。我想也许你错过了问题的重点。我知道屏蔽是常见的行为,并且我知道如何明确选择屏蔽版本。掩码的正常使用是为非常不同的上下文提供类似命名的函数。在这种情况下,两者非常相似。输入一个数据框,通过随机样本取行的一个子集,输出一个数据框。新版本的函数似乎没有任何意义,其参数以不同的顺序呈现略有不同。

标签: r apache-spark sample


【解决方案1】:

如果您有 SparkR 数据帧,则需要使用 SparkR api 进行采样。如果您有 R 数据框,则需要使用 base::R 采样函数调用。 SparkR 不是 R,函数调用也不相同。

您遇到的问题是masking 之一。

【讨论】:

  • 谢谢@David。这非常有帮助......由于缺乏关于 R 和 SparkR 交互的强大文档和教育材料,我发现我永远无法完全清楚我是否拥有 R 数据框或 Spark 数据框。很高兴知道我们为每种类型的 df 提供了一个示例函数......现在我只需要制定一个明确的方法来确定我在任何给定的变量名中都有哪些!
  • btw @David,一旦我的荣誉增加 1,您的回答就会被投票赞成
【解决方案2】:

为了解决问题的第二部分,为了其他人的利益,我发现 Spark 文档确实列出了被屏蔽的 R 函数: R Function Name Conflicts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-13
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 2021-04-02
    相关资源
    最近更新 更多