如何在 SparkR 中对 DataFrame 使用 mutate?

How do I use mutate on DataFrame in SparkR?

我正在尝试使用 方法使用 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"

我找不到任何帮助。

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

相同的接口

如果您想将 dplyr 与 Spark 一起使用,您应该使用 sparklyr,而不是 SparkR。

使用 SparkR 使用 SparkR::withColumn:

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

SparkR::mutate.