2017-04-24 8 views
0

おそらくthis questionと多少似ていますが、SparkRデータフレームがキャレットパッケージと互換性があるようには思えません。SparkRでのキャレットの使用?

私は私のモデルを訓練しようとすると、私は次のエラーを取得する:

Error in as.data.frame.default(data) : 
    cannot coerce class "structure("SparkDataFrame", package = "SparkR")" to a data.frame 

は、この周りに方法はありますか?以下は、アイリスを使用した再現可能な例です。

#load libraries 
library(caret) 
library(randomForest) 
set.seed(42) 

#point R session to Spark 
Sys.setenv(SPARK_HOME = "your/spark/installation/here") 
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths())) 

#load SparkR 
library(SparkR) 

#initialize Spark context 
sc <- sparkR.init(master = "local",sparkEnvir = list(spark.driver.memory="2g")) 

#initialize SQL context 
sqlContext <- sparkRSQL.init(sc) 

train2 <- createDataFrame(sqlContext, iris) 

#train the model 
model <- train(Species ~ Sepal_Length + Petal_Length, 
       data = train2, 
       method = "rf", 
       trControl = trainControl(method = "cv", number = 5) 

) 

この場合も、この方法はありますか?そうでない場合、SparkRを使った機械学習の最も簡単な方法は何ですか?

+0

これが不可能です。 – mtoto

+0

@mtoto私はこれを間違いなく発見したと思いますが、SparkRで機械学習を達成するための代替手段は何ですか?いずれかがあります? – skathan

+0

はい:http://spark.apache.org/docs/latest/sparkr.html#machine-learning – mtoto

答えて

1

SparkDataFramescaretのトレーニング方法を使用することはできません。ただしSparkR::spark.randomForestを使用して、ランダムフォレスト分類器を訓練するために、たとえば、Spark-ml年代アルゴリズムを使用することができます。

#train the model 
model <- spark.randomForest(train2, 
          type="classification", 
          Species ~ Sepal_Length + Petal_Length, 
          maxDepth = 5, 
          numTrees = 100) 

summary(model) 
関連する問題