遷移指南:SparkR(Spark 上的 R)
- 從 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、資料集和資料框。
從 SparkR 3.1 升級至 3.2
- 以前,SparkR 在 SparkR 在純 R shell 或 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
中最後一層的大小是否有效。例如,如果訓練資料只有兩個標籤,則layers
參數(例如c(1, 3)
)以前不會造成錯誤,但現在會造成錯誤。
從 SparkR 2.3 升級至 2.3.1 及以上
- 在 SparkR 2.3.0 及更早版本中,
substr
方法的start
參數錯誤地減一並視為從 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
,已新增要計算的統計資料選項。其輸出已從describe
的輸出變更。 - 如果 SparkR 套件和 Spark JVM 的版本不符,可能會產生警告。
從 SparkR 2.1 升級至 2.2
- 已將
numPartitions
參數新增到createDataFrame
和as.DataFrame
。在分割資料時,分割位置計算已變更為與 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.session()
取代sparkR.init()
,以執行 SparkSession 個體化。完成後,目前作用中的 SparkSession 將用於 SparkDataFrame 作業。 - 參數
sparkExecutorEnv
不受sparkR.session
支援。若要設定執行器的環境,請設定 Spark 設定屬性,其前綴為「spark.executorEnv.VAR_NAME」,例如「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
- 在 Spark 1.6.0 之前,寫入的預設模式為
append
。在 Spark 1.6.0 中,已變更為error
,以符合 Scala API。 - SparkSQL 會將 R 中的
NA
轉換為null
,反之亦然。 - 自 1.6.1 起,SparkR 中的 withColumn 方法支援將新欄位新增至 DataFrame 或取代相同名稱的現有欄位。