當(dāng)前特性
SparkR往Spark中增加了R語言API和運行時支持。Spark的 API由Spark Core的API以及各個內(nèi)置的高層組件(Spark Streaming,Spark SQL,ML Pipelines和MLlib,Graphx)的API組成,目前SparkR只提供了Spark的兩組API的R語言封裝,即Spark Core的RDD API和Spark SQL的DataFrame API。
需要指出的是,在Spark 1.4版本中,SparkR的RDD API被隱藏起來沒有開放,主要是出于兩點考慮:
- RDD API雖然靈活,但比較底層,R用戶可能更習(xí)慣于使用更高層的API;
- RDD API的實現(xiàn)上目前不夠健壯,可能會影響用戶體驗,比如每個分區(qū)的數(shù)據(jù)必須能全部裝入到內(nèi)存中的限制,對包含復(fù)雜數(shù)據(jù)類型的RDD的處理可能會存在問題等。
目前社區(qū)正在討論是否開放RDD API的部分子集,以及如何在RDD API的基礎(chǔ)上構(gòu)建一個更符合R用戶習(xí)慣的高層API。
RDD API
用戶使用SparkR RDD API在R中創(chuàng)建RDD,并在RDD上執(zhí)行各種操作。