移設ガイド: SparkR (Spark 上の R)
- SparkR 3.1 から 3.2 へのアップグレード
- SparkR 2.4 から 3.0 へのアップグレード
- SparkR 2.3 から 2.4 へのアップグレード
- PySpark 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 をデータフレームベースの API の上位バージョンに移設する場合、SQL 移設の多くの項目を適用できます。移設ガイド: SQL, データセット および データフレーム を参照してください。
SparkR 3.1 から 3.2 へのアップグレード
- 以前は、SparkRがプレーンなRシェルまたはRscriptで実行され、Spark配布物が見つからない場合に、SparkRがユーザのキャッシュディレクトリに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つのラベルだけを持つ場合、c(1, 3)
のようなlayers
パラメータは前はエラーを起こしませんでした。今ではエラーを起こします。
PySpark 2.3 から 2.3.1 以上へのアップグレード
- SparkR 2.3.0 以前では、
substr
メソッドのstart
パラメータは間違って1から引かれ、0ベースと見なされていました。これは矛盾した部分文字列の結果につながるかもしれず、Rでのsubstr
の挙動とも一致しません。バージョン 2.3.1以降、substr
メソッドのstart
パラメータが今では1ベースであるように修正されました。例として、substr(lit('abcdef'), 2, 4))
はSparkR 2.3.0ではabc
という結果になり、SparkR 2.3.1では結果はbcd
になるでしょう。
SparkR 2.2 から 2.3 へのアップグレード
stringsAsFactors
パラメータは前もってcollect
を使って無視されました。例えば、collect(createDataFrame(iris), stringsAsFactors = TRUE))
。修正されました。summary
については、計算するための統計のためのオプションが追加されました。その出力は説明
のそれとは変更されました。- もしSparkRのパッケージとSpark JVMのバージョンが一致しない場合は警告があがるかもしれません。
SparkR 2.1 から 2.2 へのアップグレード
numPartitions
パラメータがcreateDataFrame
とas.DataFrame
に追加されました。データを分割する時にパーティションの場所の計算がScalaでのそれと一致するように行われます。createExternalTable
メソッドがcreateTable
と置き換えられるために非推奨になりました。どちらのメソッドも外部あるいは管理されたテーブルを作成するために呼ぶことができます。追加のカタログメソッドが追加されました。- デフォルトでは、derby.log が
tempdir()
に保存されます。これはenableHiveSupport
をTRUE
に設定してSparkSessionが初期化される場合に生成されるでしょう。 spark.lda
はオプティマイザを正しく設定していませんでした。修正されました。- 幾つかのモデルのサマリの出力が
係数
を行列
として持つように更新されました。これにはspark.logit
,spark.kmeans
,spark.glm
が含まれます。spark.gaussianMixture
のためのモデルのサマリの出力はloglik
としてlog-likelihoodを追加しました。
SparkR 2.0 から 3.1 へのアップグレード
join
はもうデフォルトではデカルト積を実行しません。代わりにcrossJoin
を使ってください。
SparkR 1.6 から 2.0 へのアップグレード
- メソッド
table
は削除され、tableToDF
に置き換えられました。 - クラス
DataFrame
は名前の衝突を避けるためにSparkDataFrame
に名前を変更されました。 - Sparkの
SQLContext
とHiveContext
はSparkSession
と置き換えられるために非推奨になりました。SparkSessionをインスタンス化するには、sparkR.init()
の代わりに、その場所でsparkR.session()
を呼んでください。一度これが行われると、現在の有効なSparkSessionhaSparkDataFrame操作のために使われるでしょう。 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
と置き換えられるために非推奨になりました。 - これらの関数では
sc
SparkContext パラメータはもう必要とされません:setJobGroup
,clearJobGroup
,cancelJobGroup
SparkR 1.5 から 1.6 へのアップグレード
- Spark1.6.0の前は、書き込みのデフォルトのモードは
append
でした。Spark 1.6.0でScala APIに合致するように、error
に変更されました。 - SparkSQL はRの
NA
をnull
に変換します。逆もまた同様です。 - 1.6.1から、SparkRの withColumn メソッドは新しいカラムの追加、あるいはデータフレームの同じ名前の既存のカラムの置き換えをサポートします。