sparkには、StandardScaler、MinMaxScaler、MaxAbsScaler、scala、java、pythonがあります。 SparkにはR(SparkR)のようなメソッドがありますか?SparkR(Spark 2.1.0または2.2.0)にMaxAbsScalerはありますか?
2
A
答えて
2
Spark 2.2.0または2.1.0には、scala、javaおよびpythonのデータ前処理に必要なスケーラがあります。しかしR(SparkR)にはまだスケーラがありません。したがって、私はデータフレームの列を拡大する2つの関数を書いています。
機能1:
# max abs scaler function (R dataframe to Spark Dataframe)
maxabsscaler <- function(df, cols, scalingUpperLimit){
for(i in cols){
max <- max(df[i])
df[i] <- (df[, c(i)]/max) * scalingUpperLimit
}
return(as.DataFrame(df))
}
機能2:
# max abs scaler function (Only Spark Dataframe)
maxabsscaler2 <- function(df, cols, scalingUpperLimit){
createOrReplaceTempView(df, "df_tmp")
for(i in columns){
max <- collect(sql(paste("SELECT MAX(", i ,") FROM df_tmp")))[[1]]
df[[i]] <- df[[i]]/max * scalingUpperLimit
}
return(df)
}
注:この関数を呼び出すときに必要なので機能1があなたのデスクトップアプリケーションやテスト環境に適していますスパークデータフレームをRデータフレームに変換する。 Rデータフレームは1台のコンピュータで実行されます。したがって、大きなデータセットには適していません。関数2では、スパークデータフレームをRデータフレームに変換する必要はありません。したがって、この機能を運用環境に導入することができます。関数はNA値を扱うことができません。しかし、それらを改善することができます。列とscalingUpperLimit(100,10、1など)パラメータを指定する必要があります。
使用例:
survival_of_patients <- read.df("D:\\projects\\R\\data\\survival_of_patients.csv", "csv", header = "true")
trainTest <-randomSplit(survival_of_patients, c(0.8, 0.2), 42)
train = trainTest[[1]]
test = trainTest[[2]]
columns <- colnames(as.data.frame(train))[!colnames(as.data.frame(train)) %in% c("SurvivalStatus")]
train <- maxabsscaler(as.data.frame(train), columns, 10)
test <- maxabsscaler(as.data.frame(test), columns, 10)
# or
# train <- maxabsscaler2(train, columns, 10)
# test <- maxabsscaler2(test, columns, 10)
あなたは、このデータセットをダウンロードして、機能をテストすることができます。 https://archive.ics.uci.edu/ml/datasets/Haberman%27s+Survival
関連する問題
- 1. SparkRを使用したApache Spark 2.1.0のPOSIXctタイプの降格
- 2. Spark 2.2.0 FileOutputCommitter
- 3. SPARK_WORKER_INSTANCES for Spark 2.2.0
- 4. Dataflow 2.1.0のIntrabundleParallelizationに代わる方法はありますか?
- 5. モンゴスキンとバルク操作? (MongoDBは3.2、2.1.0&2.2.0をmongoskin)
- 6. Spark 2.2.0ストリーミングデータソースの検索に失敗しました:kafka
- 7. Spark MLlib IDFシャッフルデータはありますか?
- 8. Kafka 0.9.0とSpark Streaming 2.1.0:kafka.cluster.BrokerEndPointはkafka.cluster.Brokerにキャストできません
- 9. spark 2.1.0でpythonファイルをspark-submitする方法は?
- 10. Google DataProcのspark-shellとsparkR
- 11. ストラクチャードストリーミング2.1.0カフカドライバは - パッケージでYARNで動作しますが、スタンドアロンクラスタモードでは問題があります
- 12. spark-redshift - Spark 2.1.0を使用してエラーを保存しました。
- 13. Spark 2.1.0 - 原因:java.lang.ClassNotFoundException:scala.collection.GenTraversableOnce $ class
- 14. Spark 2.1.0 - SparkML要件が失敗しました
- 15. Rstudio - HDInsight Spark Clusterに接続します。SparkR
- 16. EMRクラスタでspark-submitまたはsparkRを使用してSparkRスクリプトを実行するにはどうすればよいですか?
- 17. は、Dataframe.toPandasは常にドライバノードまたはワーカーノードにありますか?
- 18. Google DataprocのSpark UIはどこにありますか?
- 19. TalendのApache Sparkコンポーネントはどこにありますか
- 20. SparkのPCAインプリメンテーションハンドルはいくつの列にありますか?
- 21. SparkでStringBuilderまたはStringBufferを使用する必要がありますか?
- 22. Run SparkR |私のCloudera 5.9 SparkのRパッケージ
- 23. SparkRとPysparkは起動時にJava.net.Bindexceptionをスローしますが、Spark-Shellは起動しません。
- 24. Spark 2.0 spark implicitsがありません
- 25. Spark Datasetで列を丸める方法はありますか?
- 26. Spark Log4jのプロパティのリファレンスはありますか?
- 27. Spark、hadoop、ハイブの互換性マッピングはありますか
- 28. HANA Spark Controller 1.5のAmbariインストールはありますか?
- 29. Apache Spark/PySparkにCosine距離のあるKmeansの実装はありますか?
- 30. Spark 2.1.0:圧縮CSVファイルを読む