您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

如何使用Apache Spark 2.0

大?。?/span>0.5 MB 人氣: 2017-09-28 需要積分:1

  Spark 2.0中使用DataFrames和SQL的第一步

  Spark 2.0開發(fā)的一個動機是讓它可以觸及更廣泛的受眾,特別是缺乏編程技能但可能非常熟悉SQL的數(shù)據(jù)分析師或業(yè)務(wù)分析師。因此,Spark 2.0現(xiàn)在比以往更易使用。在這部分,我將介紹如何使用Apache Spark 2.0。并將重點關(guān)注DataFrames作為新Dataset API的無類型版本。

  到Spark 1.3,彈性分布式數(shù)據(jù)集(Resilient Distributed Dataset,RDD)一直是Spark中的主要抽象。RDD API是在Scala集合框架之后建模的,因此間接提供了Hadoop Map / Reduce熟悉的編程原語以及函數(shù)式編程(Map、Filter、Reduce)的常用編程原語。雖然RDD API比Map / Reduce范例更具表達性,但表達復雜查詢?nèi)匀缓芊爆崳貏e是對于來自典型數(shù)據(jù)分析背景的用戶,他們可能熟悉SQL,或來自R/Python編程語言的數(shù)據(jù)框架。

  Spark 1.3引入了DataFrames作為RDD頂部的一個新抽象。DataFrame是具有命名列的行集合,在R和Python相應(yīng)包之后建模。

  Spark 1.6看到了Dataset類作為DataFrame的類型化版本而引入。在Spark 2.0中,DataFrames實際上是Datasets的特殊版本,我們有type DataFrame = Dataset [Row],因此DataFrame和Dataset API是統(tǒng)一的。

  表面上,DataFrame就像SQL表。Spark 2.0將這種關(guān)系提升到一個新水平:我們可以使用SQL來修改和查詢DataSets和DataFrames。通過限制表達數(shù)量,有助于更好地優(yōu)化。數(shù)據(jù)集也與Catalyst優(yōu)化器良好集成,大大提高了Spark代碼的執(zhí)行速度。因此,新的開發(fā)應(yīng)該利用DataFrames。

  在本文中,我將重點介紹Spark 2.0中DataFrames的基本用法。我將嘗試強調(diào)Dataset API和SQL間的相似性,以及如何使用SQL和Dataset API互換地查詢數(shù)據(jù)。借由整個代碼生成和Catalyst優(yōu)化器,兩個版本將編譯相同高效的代碼。

  代碼示例以Scala編程語言給出。我認為這樣的代碼最清晰,因為Spark本身就是用Scala編寫的。

  ?SparkSession

  SparkSession類替換了Apache Spark 2.0中的SparkContext和SQLContext,并為Spark集群提供了唯一的入口點。

  如何使用Apache Spark 2.0

  為了向后兼容,SparkSession對象包含SparkContext和SQLContext對象,見下文。當我們使用交互式Spark shell時,為我們創(chuàng)建一個名為spark的SparkSession對象。

  ?創(chuàng)建DataFrames

  DataFrame是具有命名列的表。最簡單的DataFrame是使用SparkSession的range方法來創(chuàng)建:

  使用show給我們一個DataFrame的表格表示,可以使用describe來獲得數(shù)值屬性概述。describe返回一個DataFrame:

  如何使用Apache Spark 2.0

?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

如何使用Apache Spark 2.0下載

相關(guān)電子資料下載

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?