2017-08-22 8 views
0

thisメソッドを使用して、SparkRを使用してデータフレーム内のフィールドを分解しようとしています。SparkRのDataFrameでmutateを使用するにはどうすればよいですか?

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" 

私はこのために任意のヘルプを見つけることができません。

+0

なぜあなたは 'explode'しようとしていますか?私がSparkRで見たものから、 'SELECT'ステートメントはあなたのためにデータを正規化すべきです。 – nate

答えて

3

これはできません。 SparkDataFramedata.frameと同じインターフェイスを実装していません。

dplyrをSparkで使用する場合は、sparklyr(SparkRではなく)を使用してください。 SparkRで

SparkR::withColumnを使用します。

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

またはSparkR::mutate

関連する問題