国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

星火SQL快速指南

2018-12-12 11:51 更新

星火 - 引言

行業(yè)都使用Hadoop廣泛地分析他們的數(shù)據(jù)集。其原因在于Hadoop框架是基于簡單的編程模型(MapReduce的),并且它使計(jì)算的解決方案,是可擴(kuò)展的,柔性的,容錯(cuò)和成本效益。在這里,主要關(guān)心的是在查詢之間的等待時(shí)間和等待時(shí)間來運(yùn)行計(jì)劃的條款處理大型數(shù)據(jù)集,以保持速度。

火花是由Apache軟件基金會(huì)推出了加快的Hadoop計(jì)算計(jì)算軟件的過程。

作為對(duì)一個(gè)共同的信念,Spark是Hadoop的不是一個(gè)修改版本 ,不,真的,依賴于Hadoop的,因?yàn)樗凶约旱募汗芾怼?Hadoop是只是實(shí)施星火的方式之一。

星火采用Hadoop的方式有兩種-一種是存儲(chǔ)和第二個(gè)是處理 。由于星火都有自己的集群管理計(jì)算,它使用了Hadoop的只有存儲(chǔ)的目的。

阿帕奇星火

Apache的Spark是一個(gè)閃電般快速的集群計(jì)算技術(shù),專為快速計(jì)算。它是基于在Hadoop MapReduce和它擴(kuò)展了MapReduce的模型,以有效地將其用于多種類型的計(jì)算,其包括交互式查詢和流處理?;鸹ǖ闹饕卣魇?b>其內(nèi)存集群計(jì)算 ,增加的應(yīng)用程序的處理速度。

星火旨在涵蓋廣泛的工作負(fù)載,如批量應(yīng)用,迭代算法,互動(dòng)查詢和流媒體。除了支持所有這些工作負(fù)載在各自的系統(tǒng),它減少了維護(hù)單獨(dú)的工具的管理負(fù)擔(dān)。

阿帕奇星火的演變

Spark是Hadoop的2009年在加州大學(xué)伯克利分校的AMPLab由馬太·扎哈里亞開發(fā)的子項(xiàng)目之一。它是開源的,2010年在BSD許可下。它被捐贈(zèng)給Apache Software Foundation的2013年,現(xiàn)在的Apache星火已經(jīng)成為從二月2014年一個(gè)頂級(jí)Apache項(xiàng)目。

阿帕奇星火特點(diǎn)

阿帕奇星火具有以下特點(diǎn)。

  • 速度 -在磁盤上運(yùn)行時(shí),星火有助于運(yùn)行Hadoop集群的應(yīng)用程序,高達(dá)100倍的速度在內(nèi)存中,快10倍。這通過減少讀/寫操作的次數(shù),以磁盤是可能的。它存儲(chǔ)在內(nèi)存中的中間處理數(shù)據(jù)。

  • 支持多國語言 -星火提供了在Java中,斯卡拉,或Python內(nèi)置的API。因此,你可以寫在不同的語言的應(yīng)用程序。星火配備了80個(gè)高層次的經(jīng)營者進(jìn)行互動(dòng)查詢。

  • 高級(jí)分析 -星火不僅支持'地圖'和'減少'。它也支持SQL查詢,流數(shù)據(jù),機(jī)器學(xué)習(xí)(ML),和圖形的算法。

星火內(nèi)置在Hadoop

下圖顯示了如何星火可以用Hadoop組件內(nèi)置三種方式。

星火內(nèi)置在Hadoop

有火花部署三種方式如下面所解釋。

  • 單機(jī)版-星火獨(dú)立部署意味著星火上占據(jù)HDFS(Hadoop分布式文件系統(tǒng))和空間頂部的地方分配給HDFS,明確。在這里,星火和MapReduce將并排覆蓋在集群中的所有火花的工作。

  • Hadoop的紗線 - Hadoop的部署紗手段,簡單地說,火花對(duì)成紗運(yùn)行而無需任何預(yù)先安裝或root訪問權(quán)限。它有助于星火融入的Hadoop生態(tài)系統(tǒng)或Hadoop的堆棧。它允許其它組件上疊層的頂部上運(yùn)行。

  • 在MapReduce的火花(SIMR) -在MapReduce的火花來,除了獨(dú)立部署開展火花的工作。隨著SIMR,用戶可以啟動(dòng)Spark和使用它的外殼沒有任何管理權(quán)限。

星火組件

下圖說明了星火的不同組件。

星火組件

Apache的核心星火

星火Core是,所有其他的功能是建立在這個(gè)基礎(chǔ)平臺(tái)火花底層一般執(zhí)行引擎。它提供了內(nèi)存計(jì)算和外部存儲(chǔ)系統(tǒng)引用的數(shù)據(jù)集。

星火SQL

星火SQL是星火核心之上的組件,它引入了一種名為SchemaRDD一個(gè)新的數(shù)據(jù)抽象,它提供了結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)的支持。

星火流

星火流利用星火核心的快速調(diào)度能力,執(zhí)行流分析的。它在小批量攝取數(shù)據(jù)和數(shù)據(jù)的那些小批量進(jìn)行RDD(彈性分布式數(shù)據(jù)集)的轉(zhuǎn)換。

MLlib(機(jī)器學(xué)習(xí)庫)

MLlib是一個(gè)分布式的機(jī)器學(xué)習(xí)框架以上星火因?yàn)榉植际交趦?nèi)存的Spark架構(gòu)的。據(jù),根據(jù)基準(zhǔn),通過對(duì)交替最小二乘(ALS)實(shí)現(xiàn)的MLlib開發(fā)完成的。星火MLlib是九次快的Apache Mahout中的基于磁盤的Hadoop版本(前亨利馬烏獲得了星火接口)。

GraphX

GraphX是在火花的頂部上的分布式圖形處理框架。它提供了用于表達(dá)可以通過使用預(yù)凝膠抽象API建模用戶定義圖表圖形計(jì)算的API。它也提供了這種抽象的優(yōu)化運(yùn)行時(shí)。

星火 - RDD

彈性分布式數(shù)據(jù)集

彈性分布式數(shù)據(jù)集(RDD)是星火的基本數(shù)據(jù)結(jié)構(gòu)。它是對(duì)象的不可變的分布式集合。在RDD每個(gè)數(shù)據(jù)集被劃分成邏輯分區(qū),這可能在集群的不同節(jié)點(diǎn)上進(jìn)行計(jì)算。 RDDS可以包含任何類型的Python,Java的,或者Scala的對(duì)象,包括用戶定義的類。

形式上,一個(gè)RDD是一個(gè)只讀分區(qū)記錄的集合。 RDDS可通過確定性行動(dòng)上穩(wěn)定存儲(chǔ)或其他RDDS無論是數(shù)據(jù)被創(chuàng)建。 RDD是可以并行操作的元件的容錯(cuò)集合。

有兩種方法可以創(chuàng)建RDDS -在你的驅(qū)動(dòng)程序并行現(xiàn)有的集合,或引用在外部存儲(chǔ)系統(tǒng), 數(shù)據(jù)集如共享文件系統(tǒng),HDFS,HBase的,或任何數(shù)據(jù)源提供Hadoop的輸入格式。

火花利用RDD的概念實(shí)現(xiàn)更快和有效的MapReduce操作。讓我們先討論如何MapReduce的操作發(fā)生,為什么不那么有效。

數(shù)據(jù)共享是MapReduce的慢

MapReduce的被廣泛用于處理和并行產(chǎn)生大型數(shù)據(jù)集采用,在集群上的分布式算法。它允許用戶編寫并行計(jì)算,使用一組高層次的運(yùn)營商,而不必?fù)?dān)心工作分配和容錯(cuò)能力。

遺憾的是,目前大多數(shù)的框架,只有這樣,才能重新使用計(jì)算(例:二MapReduce任務(wù)之間)的數(shù)據(jù)是將其寫入外部穩(wěn)定的存儲(chǔ)系統(tǒng)(例如:HDFS)。雖然這個(gè)框架提供了訪問群集的計(jì)算資源眾多抽象,用戶還是想要更多。

這兩個(gè)迭代交互式應(yīng)用需要跨并行作業(yè)更快速的數(shù)據(jù)共享。數(shù)據(jù)共享是緩慢的MapReduce由于復(fù)制 , 序列化磁盤IO。關(guān)于存儲(chǔ)系統(tǒng),大部分的Hadoop應(yīng)用,他們花費(fèi)的時(shí)間的90%以上做HDFS讀 - 寫操作。

MapReduce的迭代操作

重用多級(jí)的應(yīng)用程序在多個(gè)計(jì)算中間結(jié)果。下圖說明了目前的框架是如何工作的,同時(shí)做MapReduce的迭代操作。這招致由于數(shù)據(jù)復(fù)制,磁盤I / O和系列化,使系統(tǒng)緩慢實(shí)質(zhì)性開銷。

MapReduce的迭代操作

MapReduce的交互式操作

用戶運(yùn)行即席查詢對(duì)相同的數(shù)據(jù)子集。每個(gè)查詢會(huì)做的穩(wěn)定存儲(chǔ),它可以主宰應(yīng)用程序執(zhí)行時(shí)間的磁盤I / O。

下圖說明了目前的框架,同時(shí)做交互查詢MapReduce的工作方式。

MapReduce的交互式操作

使用星火RDD數(shù)據(jù)共享

數(shù)據(jù)共享是緩慢的MapReduce由于復(fù)制 , 序列化磁盤IO。最Hadoop的應(yīng)用,他們花費(fèi)的時(shí)間的90%以上做HDFS讀 - 寫操作。

認(rèn)識(shí)到這個(gè)問題,研究人員開發(fā)了一種稱為Apache的星火專門框架?;鸹ǖ年P(guān)鍵思想為R esilienteistributedeatasets(RDD);它支持在內(nèi)存中處理的計(jì)算。這意味著,它存儲(chǔ)的存儲(chǔ)器狀態(tài)橫跨的作業(yè)的對(duì)象和對(duì)象是那些作業(yè)之間共享。在存儲(chǔ)器數(shù)據(jù)共享比網(wǎng)絡(luò)和磁盤快10到100倍。

現(xiàn)在讓我們嘗試找出迭代和交互操作如何發(fā)生Spark中RDD。

在星火RDD迭代操作

下面給出的圖顯示星火RDD迭代操作。它將存儲(chǔ)在分布式存儲(chǔ)器代替穩(wěn)定存儲(chǔ)(磁盤)中間結(jié)果,使系統(tǒng)更快。

-如果分布式內(nèi)存(RAM),足以存儲(chǔ)中間結(jié)果(作業(yè)狀態(tài)),那么將這些結(jié)果存儲(chǔ)在磁盤上

在星火RDD迭代操作

在星火RDD交互式操作

此圖顯示星火RDD交互式操作。如果不同的查詢?cè)谕唤M數(shù)據(jù)的反復(fù)運(yùn)行,該特定數(shù)據(jù)可被保存在內(nèi)存中獲得更好的執(zhí)行時(shí)間。

在星火RDD交互式操作

默認(rèn)情況下,每個(gè)變換RDD可在每次運(yùn)行在其上的動(dòng)作時(shí)間重新計(jì)算。然而,你也可能會(huì)持續(xù)一個(gè)RDD在內(nèi)存中,在這種情況下,星火將保持元件周圍的群集上更快地訪問,查詢它的下一次。此外,還為在磁盤上持續(xù)RDDS支持,或跨多個(gè)節(jié)點(diǎn)的復(fù)制。

星火 - 安裝

Spark是Hadoop的子項(xiàng)目。因此,最好是火花安裝到基于Linux系統(tǒng)。下列步驟顯示了如何安裝Apache的火花。

步驟1:驗(yàn)證安裝的Java

安裝Java是在安裝星火強(qiáng)制性的事情之一。試試下面的命令來驗(yàn)證Java版本。

$java -version

如果Java已經(jīng),安裝在系統(tǒng)上,你能看到以下響應(yīng) -

java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

如果你沒有在系統(tǒng)上安裝了Java,那么在進(jìn)行下一步之前,安裝Java。

第二步:驗(yàn)證安裝斯卡拉

你應(yīng)該Scala語言來實(shí)現(xiàn)的火花。因此,讓我們用下面的命令驗(yàn)證斯卡拉安裝。

$scala -version

如果Scala是已經(jīng)安裝在系統(tǒng)中,你能看到以下響應(yīng) -

Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL

如果你沒有在系統(tǒng)上安裝斯卡拉,然后進(jìn)行斯卡拉安裝下一個(gè)步驟。

第三步:下載斯卡拉

通過訪問下載最新版本的斯卡拉下面的鏈接下載斯卡拉 。在本教程中,我們將使用Scala-2.11.6版本。下載后,您會(huì)發(fā)現(xiàn)在下載文件夾斯卡拉tar文件。

第四步:安裝斯卡拉

按照安裝斯卡拉下面給出的步驟。

提取斯卡拉tar文件

用于提取斯卡拉tar文件鍵入以下命令。

$ tar xvf scala-2.11.6.tgz

斯卡拉移動(dòng)軟件文件

使用以下命令為斯卡拉軟件文件,移動(dòng)到相應(yīng)目錄(在/ usr /本地/斯卡拉)。

$ su –
Password:
# cd /home/Hadoop/Downloads/
# mv scala-2.11.6 /usr/local/scala
# exit

斯卡拉設(shè)置PATH

為斯卡拉設(shè)置PATH使用下面的命令。

$ export PATH = $PATH:/usr/local/scala/bin

驗(yàn)證安裝斯卡拉

安裝完畢后,最好是進(jìn)行驗(yàn)證。驗(yàn)證斯卡拉安裝使用下面的命令。

$scala -version

如果Scala是已經(jīng)安裝在系統(tǒng)中,你能看到以下響應(yīng) -

Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL

第五步:下載Apache的星火

通過訪問以下鏈接下載最新版本的星火下載星火 。在本教程中,我們使用的是火花1.3.1彬hadoop2.6版本。下載后,你會(huì)發(fā)現(xiàn)在下載文件夾星火tar文件。

第六步:安裝星火

按照安裝星火下面給出的步驟。

星火提取焦油

提取火花tar文件下面的命令。

$ tar xvf spark-1.3.1-bin-hadoop2.6.tgz

移動(dòng)星火軟件文件

對(duì)于Spark軟件文件移動(dòng)到相應(yīng)目錄(在/ usr /本地/火花)以下命令。

$ su –
Password:
# cd /home/Hadoop/Downloads/
# mv spark-1.3.1-bin-hadoop2.6 /usr/local/spark
# exit

設(shè)置為星火環(huán)境

以下行添加到?/.bashrc文件。這意味著添加的位置,那里的火花軟件文件的位置到PATH變量。

export PATH = $PATH:/usr/local/spark/bin

對(duì)采購的?/ .bashrc文件使用以下命令。

$ source ~/.bashrc

第七步:驗(yàn)證??安裝星火

寫打開外殼星火以下命令。

$spark-shell

如果火花塞安裝成功,那么你會(huì)發(fā)現(xiàn)下面的輸出。

Spark assembly has been built with Hive, including Datanucleus jars on classpath
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
15/06/04 15:25:22 INFO SecurityManager: Changing view acls to: hadoop
15/06/04 15:25:22 INFO SecurityManager: Changing modify acls to: hadoop
disabled; ui acls disabled; users with view permissions: Set(hadoop); users with modify permissions: Set(hadoop)
15/06/04 15:25:22 INFO HttpServer: Starting HTTP Server
15/06/04 15:25:23 INFO Utils: Successfully started service 'HTTP class server' on port 43292.
Welcome to
    ____             __
   / __/__ ___ _____/ /__
   _ / _ / _ `/ __/ '_/
   /___/ .__/\_,_/_/ /_/\_ version 1.4.0
      /_/
Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_71)
Type in expressions to have them evaluated.
Spark context available as sc
scala>

星火SQL - 引言

星火推出名為星火SQL結(jié)構(gòu)化數(shù)據(jù)處理的編程模塊。它提供了一個(gè)編程抽象稱為數(shù)據(jù)框中,可以作為分布式SQL查詢引擎作用。

星火SQL的特點(diǎn)

以下是星火SQL的功能 -

  • 集成 -無縫星火計(jì)劃混合使用SQL查詢。星火SQL可以讓你查詢的結(jié)構(gòu)化數(shù)據(jù)為星火分布式數(shù)據(jù)集(RDD),使用Python,Scala和Java集成的API。這種緊密集成可以很容易地同時(shí)運(yùn)行復(fù)雜的分析算法SQL查詢。

  • 統(tǒng)一的數(shù)據(jù)訪問 -從各種來源加載和查詢數(shù)據(jù)。架構(gòu)RDDS提供與結(jié)構(gòu)化數(shù)據(jù),包括Apache蜂巢桌,實(shí)木復(fù)合地板的文件和文件JSON工作效率的單一接口。

  • 蜂巢兼容性 -在現(xiàn)有的倉庫運(yùn)行未經(jīng)修改的蜂巢查詢。星火SQL重用蜂房前端和MetaStore,讓您與現(xiàn)有的數(shù)據(jù)蜂房,查詢和UDF完全兼容。只要沿著蜂巢安裝。

  • 標(biāo)準(zhǔn)連接 -連接通過JDBC或ODBC。星火SQL包括與行業(yè)標(biāo)準(zhǔn)的JDBC和ODBC連接的服務(wù)器模式。

  • 可擴(kuò)展性 -使用相同的引擎,交互和長查詢。星火SQL取RDD模式,支持中端查詢?nèi)蒎e(cuò)的優(yōu)勢,讓它擴(kuò)展到大型工作過。不要擔(dān)心使用不同引擎的歷史數(shù)據(jù)。

星火SQL架構(gòu)

下圖說明了星火SQL的架構(gòu) -

星火SQL架構(gòu)

該架構(gòu)包含三個(gè)層次,即語言的API,架構(gòu)RDD,和數(shù)據(jù)源。

  • 語言API - Spark是用不同的語言和SQL星火兼容。同時(shí),這也是這些書寫的API(蟒蛇,斯卡拉,JAVA,HiveQL)的支持。

  • 架構(gòu)RDD -星火核心設(shè)計(jì)了名為RDD特殊的數(shù)據(jù)結(jié)構(gòu)。一般地,火花SQL工作在模式,表和記錄。因此,我們可以使用架構(gòu)作為RDD臨時(shí)表。我們可以把這種架構(gòu)作為RDD數(shù)據(jù)幀。

  • 數(shù)據(jù)源 -一般的數(shù)據(jù)源火花核心是一個(gè)文本文件,阿夫羅文件等,但是,對(duì)于火花SQL數(shù)據(jù)源是不同的。這些都是平面文件,JSON文檔,HIVE表和卡桑德拉數(shù)據(jù)庫。

我們將討論更多關(guān)于這些在后面的章節(jié)。

星火SQL - DataFrames

一個(gè)數(shù)據(jù)幀是數(shù)據(jù),這些數(shù)據(jù)被組織到一個(gè)名為列的分布式的集合。從概念上講,它是等效于具有良好優(yōu)化技術(shù)關(guān)系表。

一個(gè)數(shù)據(jù)框可以從不同的來源,如蜂房的表,結(jié)構(gòu)化的數(shù)據(jù)文件,外部數(shù)據(jù)庫,或現(xiàn)有RDDS數(shù)組構(gòu)造。這個(gè)API被設(shè)計(jì) 在Python - [R編程大熊貓取靈感來自于現(xiàn)代數(shù)據(jù)框大數(shù)據(jù)和數(shù)據(jù)的科學(xué)應(yīng)用。

數(shù)據(jù)框的特點(diǎn)

下面是一組數(shù)據(jù)幀的一些特征 -

  • 能夠處理單個(gè)節(jié)點(diǎn)群集到大集群以KB為單位的大小來拍字節(jié)的數(shù)據(jù)。

  • 支持不同的數(shù)據(jù)格式(Avro的,CSV,彈性搜索和卡桑德拉)和存儲(chǔ)系統(tǒng)(HDFS,HIVE表,MySQL等)。

  • 通過星火SQL優(yōu)化催化劑(樹轉(zhuǎn)換框架)技術(shù)優(yōu)化和代碼生成狀態(tài)。

  • 可通過星火核與所有大數(shù)據(jù)工具和框架輕松集成。

  • 提供API的Python,Java中,斯卡拉和R編程。

SQLContext

SQLContext是一類,并用于初始化火花的SQL的功能。 SparkContext類對(duì)象(SC)所需的初始化SQLContext類對(duì)象。

下面的命令用于通過火花殼初始化SparkContext。

$ spark-shell

默認(rèn)情況下,SparkContext對(duì)象與名稱SC火花-殼啟動(dòng)時(shí)初始化。

使用下面的命令來創(chuàng)建SQLContext。

scala> val sqlcontext = new org.apache.spark.sql.SQLContext(sc)

讓我們?cè)谝粋€(gè)名為employee.json一個(gè)JSON文件考慮員工記錄的例子。使用下面的命令來創(chuàng)建一個(gè)數(shù)據(jù)幀(DF)和讀取命名employee.json具有下列內(nèi)容的JSON文件。

employee.json -將這個(gè)文件在當(dāng)前斯卡拉>指針?biāo)诘哪夸洝?

{
   {"id" : "1201", "name" : "satish", "age" : "25"}
   {"id" : "1202", "name" : "krishna", "age" : "28"}
   {"id" : "1203", "name" : "amith", "age" : "39"}
   {"id" : "1204", "name" : "javed", "age" : "23"}
   {"id" : "1205", "name" : "prudvi", "age" : "23"}
}

數(shù)據(jù)框操作

數(shù)據(jù)框提供了結(jié)構(gòu)化數(shù)據(jù)處理領(lǐng)域特定語言。在這里,我們包括使用DataFrames結(jié)構(gòu)化數(shù)據(jù)處理的一些基本例子。

按照下面給出的數(shù)據(jù)框進(jìn)行操作的步驟 -

閱讀JSON文件

首先,我們要讀的JSON文件。在此基礎(chǔ)上,產(chǎn)生一個(gè)命名為(DFS)數(shù)據(jù)幀。

使用下面的命令來讀取名為employee.json的JSON文件。的數(shù)據(jù)被示出為與字段的表 - 編號(hào),姓名和年齡。

scala> val dfs = sqlContext.read.json("employee.json")

輸出 -字段名得自employee.json自動(dòng)拍攝照片。

dfs: org.apache.spark.sql.DataFrame = [age: string, id: string, name: string]

顯示數(shù)據(jù)

如果你想看到的數(shù)據(jù)框的數(shù)據(jù),然后使用以下命令。

scala> dfs.show()

輸出 -你可以看到以表格格式員工數(shù)據(jù)。

<console>:22, took 0.052610 s
+----+------+--------+
|age | id   |  name  |
+----+------+--------+
| 25 | 1201 | satish |
| 28 | 1202 | krishna|
| 39 | 1203 | amith  |
| 23 | 1204 | javed  |
| 23 | 1205 | prudvi |
+----+------+--------+

使用方法printSchema

如果你想看到的數(shù)據(jù)框的結(jié)構(gòu)(架構(gòu)),然后使用下面的命令。

scala> dfs.printSchema()

產(chǎn)量

root
   |-- age: string (nullable = true)
   |-- id: string (nullable = true)
   |-- name: string (nullable = true)

使用選擇方法

使用下面的命令從數(shù)據(jù)框的三列中取的名字 -column。

scala> dfs.select("name").show()

輸出 -你可以看到名字列的值。

<console>:22, took 0.044023 s
+--------+
|  name  |
+--------+
| satish |
| krishna|
| amith  |
| javed  |
| prudvi |
+--------+

使用過濾器時(shí)代

尋找那些年齡超過23(年齡> 23)越大,員工使用下面的命令。

scala> dfs.filter(dfs("age") > 23).show()

產(chǎn)量

<console>:22, took 0.078670 s
+----+------+--------+
|age | id   | name   |
+----+------+--------+
| 25 | 1201 | satish |
| 28 | 1202 | krishna|
| 39 | 1203 | amith  |
+----+------+--------+

使用方法GROUPBY

用于計(jì)算員工誰是同年齡的號(hào)碼使用下列命令。

scala> dfs.groupBy("age").count().show()

輸出 -這兩個(gè)雇員有23歲。

<console>:22, took 5.196091 s
+----+-----+
|age |count|
+----+-----+
| 23 |  2  |
| 25 |  1  |
| 28 |  1  |
| 39 |  1  |
+----+-----+

運(yùn)行SQL查詢編程

一個(gè)SQLContext使應(yīng)用程序能夠運(yùn)行編程在運(yùn)行SQL函數(shù)的SQL查詢并返回結(jié)果作為一個(gè)數(shù)據(jù)幀。

通常,在后臺(tái),SparkSQL支持用于轉(zhuǎn)換現(xiàn)有RDDS成DataFrames兩種不同的方法 -

不老方法和說明
1 推斷使用反射架構(gòu)

這種方法使用反射來生成包含特定類型的對(duì)象的RDD的模式。

2 編程指定模式

創(chuàng)建數(shù)據(jù)幀的第二種方法是通過編程接口,使您可以構(gòu)建一個(gè)架構(gòu),然后將其應(yīng)用到現(xiàn)有的RDD。

星火SQL - 數(shù)據(jù)來源

一個(gè)數(shù)據(jù)幀的接口允許不同的數(shù)據(jù)源對(duì)SQL星火工作。它是一個(gè)臨時(shí)表,并且可以作為一個(gè)正常的RDD操作。注冊(cè)一個(gè)數(shù)據(jù)幀作為一個(gè)表,您可以在其數(shù)據(jù)上運(yùn)行SQL查詢。

在本章中,我們將介紹使用不同的數(shù)據(jù)源星火加載和保存數(shù)據(jù)的一般方法。此后,我們將詳細(xì)討論可用于內(nèi)置數(shù)據(jù)源的特定選項(xiàng)。

有在SparkSQL可用不同類型的數(shù)據(jù)源,其中的一些列舉如下 -

不老數(shù)據(jù)源
1 JSON數(shù)據(jù)集

星火SQL可以自動(dòng)捕捉一個(gè)JSON數(shù)據(jù)集的架構(gòu)并加載它作為一個(gè)數(shù)據(jù)幀。

2 蜂巢表

蜂巢捆綁了星火庫HiveContext,從SQLContext繼承。

3 實(shí)木復(fù)合地板的文件

實(shí)木復(fù)合地板是一個(gè)柱狀的格式,許多數(shù)據(jù)處理系統(tǒng)的支持。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)