DataFrame API
Spark 1.3版本引入了DataFrame API。相較于RDD API,DataFrame API更受社區(qū)的推崇,這是因?yàn)椋?/p>
- DataFrame的執(zhí)行過程由Catalyst優(yōu)化器在內(nèi)部進(jìn)行智能的優(yōu)化,比如過濾器下推,表達(dá)式直接生成字節(jié)碼。
- 基于Spark SQL的外部數(shù)據(jù)源(external data sources) API訪問(裝載,保存)廣泛的第三方數(shù)據(jù)源。
- 使用R或Python的DataFrame API能獲得和Scala近乎相同的性能。而使用R或Python的RDD API的性能比起Scala RDD API來有較大的性能差距。
Spark的DataFrame API是從R的 Data Frame數(shù)據(jù)類型和Python的pandas庫借鑒而來,因而對(duì)于R用戶而言,SparkR的DataFrame API是很自然的。更重要的是,SparkR DataFrame API性能和Scala DataFrame API幾乎相同,所以推薦盡量用SparkR DataFrame來編程。
目前SparkR的DataFrame API已經(jīng)比較完善,支持的創(chuàng)建DataFrame的方式有: