移行ガイド: SparkR (Spark 上の R)
- SparkR 3.5 から 4.0 へのアップグレード
- SparkR 3.1 から 3.2 へのアップグレード
- SparkR 2.4 から 3.0 へのアップグレード
- SparkR 2.3 から 2.4 へのアップグレード
- SparkR 2.3 から 2.3.1 以上へのアップグレード
- SparkR 2.2 から 2.3 へのアップグレード
- SparkR 2.1 から 2.2 へのアップグレード
- SparkR 2.0 から 3.1 へのアップグレード
- SparkR 1.6 から 2.0 へのアップグレード
- SparkR 1.5 から 1.6 へのアップグレード
この移行ガイドでは、SparkR 固有の項目について説明します。SparkR を上位バージョンに移行する際には、SQL 移行の多くの項目を適用できます。 移行ガイド: SQL、Datasets、DataFrame を参照してください。
SparkR 3.5 から 4.0 へのアップグレード
- Spark 4.0 では、SparkR は非推奨となり、将来のバージョンで削除される予定です。
SparkR 3.1 から 3.2 へのアップグレード
- 以前は、SparkR は、SparkR がプレーンな R シェルまたは Rscript で実行され、Spark ディストリビューションが見つからない場合に、ユーザーのキャッシュディレクトリに Spark ディストリビューションを自動的にダウンロードしてインストールし、SparkR のインストールを完了していました。現在は、ダウンロードしてインストールするかどうかをユーザーに尋ねます。以前の動作を復元するには、
SPARKR_ASK_INSTALLATION環境変数をFALSEに設定してください。
SparkR 2.4 から 3.0 へのアップグレード
- 非推奨となったメソッド
parquetFile,saveAsParquetFile,jsonFile,jsonRDDは削除されました。read.parquet,write.parquet,read.jsonを使用してください。
SparkR 2.3 から 2.4 へのアップグレード
- 以前は、
spark.mlpの最後のレイヤーのサイズ検証を行いませんでした。たとえば、トレーニングデータに 2 つのラベルしかない場合、layersパラメータがc(1, 3)のようになっていると、以前はエラーになりませんでしたが、現在はエラーになります。
SparkR 2.3 から 2.3.1 以上へのアップグレード
- SparkR 2.3.0 以前では、
substrメソッドのstartパラメータは誤って 1 減算され、0 ベースとして扱われていました。これにより、一貫性のない部分文字列の結果が生じ、R のsubstrとの動作とも一致しませんでした。バージョン 2.3.1 以降では修正され、substrメソッドのstartパラメータは 1 ベースになりました。例として、SparkR 2.3.0 ではsubstr(lit('abcdef'), 2, 4))はabcを返しましたが、SparkR 2.3.1 では結果はbcdになります。
SparkR 2.2 から 2.3 へのアップグレード
collectでstringsAsFactorsパラメータが無視されることがありました。たとえば、collect(createDataFrame(iris), stringsAsFactors = TRUE))の場合です。これは修正されました。summaryに、計算する統計のオプションが追加されました。その出力はdescribeの出力とは異なります。- SparkR パッケージのバージョンと Spark JVM のバージョンが一致しない場合、警告が表示されることがあります。
SparkR 2.1 から 2.2 へのアップグレード
createDataFrameおよびas.DataFrameにnumPartitionsパラメータが追加されました。データの分割時、パーティション位置の計算は Scala のものと一致するように変更されました。- メソッド
createExternalTableは非推奨となり、createTableに置き換えられました。どちらのメソッドも、外部テーブルまたは管理テーブルを作成するために呼び出すことができます。追加のカタログメソッドも追加されました。 - デフォルトでは、derby.log は
tempdir()に保存されるようになりました。これは、enableHiveSupportをTRUEに設定して SparkSession をインスタンス化する際に作成されます。 spark.ldaでオプティマイザが正しく設定されていませんでした。これは修正されました。- いくつかのモデルサマリー出力が更新され、
coefficientsがmatrixになりました。これにはspark.logit,spark.kmeans,spark.glmが含まれます。spark.gaussianMixtureのモデルサマリー出力には、対数尤度がloglikとして追加されました。
SparkR 2.0 から 3.1 へのアップグレード
joinはデフォルトでカルテシアン積を実行しなくなりました。代わりにcrossJoinを使用してください。
SparkR 1.6 から 2.0 へのアップグレード
- メソッド
tableが削除され、tableToDFに置き換えられました。 - クラス
DataFrameは、名前の衝突を避けるためにSparkDataFrameにリネームされました。 - Spark の
SQLContextおよびHiveContextは非推奨となり、SparkSessionに置き換えられました。sparkR.init()の代わりに、sparkR.session()を呼び出して SparkSession をインスタンス化してください。これが完了すると、現在アクティブな SparkSession が SparkDataFrame 操作に使用されます。 sparkExecutorEnvパラメータはsparkR.sessionではサポートされていません。Executor の環境を設定するには、"spark.executorEnv.VAR_NAME" というプレフィックスを持つ Spark 設定プロパティを設定してください。例: "spark.executorEnv.PATH"sqlContextパラメータは、これらの関数では不要になりました:createDataFrame,as.DataFrame,read.json,jsonFile,read.parquet,parquetFile,read.text,sql,tables,tableNames,cacheTable,uncacheTable,clearCache,dropTempTable,read.df,loadDF,createExternalTable。- メソッド
registerTempTableは非推奨となり、createOrReplaceTempViewに置き換えられました。 - メソッド
dropTempTableは非推奨となり、dropTempViewに置き換えられました。 scSparkContext パラメータは、これらの関数では不要になりました:setJobGroup,clearJobGroup,cancelJobGroup
SparkR 1.5 から 1.6 へのアップグレード
- Spark 1.6.0 より前は、書き込みのデフォルトモードは
appendでした。Scala API に合わせるため、Spark 1.6.0 でerrorに変更されました。 - SparkSQL は R の
NAをnullに、その逆も変換します。 - 1.6.1 以降、SparkR の `withColumn` メソッドは、DataFrame に新しい列を追加するか、同じ名前の既存の列を置き換えることをサポートしています。