[R]高性能計算SparkR

Why SparkR

Spark 是一種與 Hadoop 相似的開源集群計算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現(xiàn)得更加優(yōu)越,換句話說,Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負載 。

而Spark力圖整合機器學習(MLib)、圖算法(GraphX)、流式計算(Spark Streaming)和數(shù)據(jù)倉庫(Spark SQL)等領域,通過計算引擎Spark,彈性分布式數(shù)據(jù)集(RDD),架構出一個新的大數(shù)據(jù)應用平臺。

SparkR 是一個提供輕量級前端的 R 包,在 R 的基礎上加入了 Spark 的分布式計算和存儲等特性。在 Spark 1.6.1 中,SparkR 提供了一個分布式數(shù)據(jù)框(DataFrame)的實現(xiàn),它能夠支持諸如選取、過濾和聚集等操作。這個特性與 R 語言自身提供的特性類似,但 SparkR 能夠作用于更大規(guī)模的數(shù)據(jù)集。SparkR 是一個提供輕量級前端的 R 包,在 R 的基礎上加入了 Spark 的分布式計算和存儲等特性。匯集了spark和R本身的諸多優(yōu)點,如下圖。

SparkR是什么.png
SparkR的架構.png

How to use it?

  • SparkR特有SparkDataFrame
SparkDataFrame的特點.png
SparkDataFrame的例子.png

SparkDataFram要實現(xiàn)MapReduce的函數(shù)式操作

  • dapply
  • dapplyCollect
  • gapply
    其中dapply的框架如下圖所示:
dapply的框架.png

dapply 的用法:

  • dapply(x,fun,schema)
  • dapply(x,fun)
  • 把fun函數(shù)應用到SparkDataFrame的每一個數(shù)據(jù)切片,然后把結果收集回本機成為data.frame;
  • R函數(shù)的輸入、輸出均為data.frame
  • 指定schema,R函數(shù)輸出必須匹配schema
  • example:
df <- creatDataFrame(sqlContext,mtcars)
df1 <- dapply(df,functuion(x){x+1},schema(df))


dapplyCollect
其中dapply的框架如下圖所示:

ldf <- dapplyCollect(df,function(x){x+1})
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容