如何在SparkR中的DataFrame上使用mutate?

时间:2017-08-22 07:00:01

标签: r apache-spark sparkr

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

我找不到任何帮助。

1 个答案:

答案 0 :(得分:3)

这是不可能的。 SparkDataFrame未实现与data.frame相同的界面。

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

使用SparkR使用SparkR::withColumn

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

SparkR::mutate