【问题标题】:How do I use mutate on DataFrame in SparkR?如何在 SparkR 中的 DataFrame 上使用 mutate?
【发布时间】:2017-08-22 15:12:43
【问题描述】:

我正在尝试使用 this 方法使用 SparkR 分解数据框中的字段。 我的代码是:

Sys.setenv(SPARK_HOME="/usr/hdp/2.6.0.3-8/spark")
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
library(SparkR)
sc <- sparkR.init(master="local")
hc <- sparkRHive.init(sc)
df <- sql(hc, "SELECT * FROM tweetsorc5")
library(tidyverse)
dat <- df %>%   mutate(a=explode(df$user)) %>%  select("created_at", "a.utc_offset")

但我得到了错误:

Error in UseMethod("mutate_") : 
  no applicable method for 'mutate_' applied to an object of class "DataFrame"

我找不到任何帮助。

【问题讨论】:

  • 你为什么要explode?从我在 SparkR 中看到的情况来看,SELECT 语句应该为您规范化数据。

标签: r apache-spark sparkr


【解决方案1】:

这是不可能的。 SparkDataFrame 没有实现与data.frame 相同的接口。

如果你想在 Spark 中使用 dplyr,你应该使用 sparklyr,而不是 SparkR。

使用 SparkR 使用 SparkR::withColumn:

withColumn(df, "a", explode(df$user))

SparkR::mutate

【讨论】:

    猜你喜欢
    • 2016-09-21
    • 2016-02-17
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2017-04-16
    • 2018-06-13
    相关资源
    最近更新 更多