欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂大數(shù)據(jù)培訓(xùn)解讀如何選擇大數(shù)據(jù)的編程語(yǔ)言

2019-01-03 15:48:01 1448瀏覽

今天扣丁學(xué)堂大數(shù)據(jù)培訓(xùn)老師給大家介紹一下關(guān)于如何選擇大數(shù)據(jù)的編程語(yǔ)言呢?首先比如有一個(gè)大數(shù)據(jù)項(xiàng)目,你知道問題領(lǐng)域(problemdomain),也知道使用什么基礎(chǔ)設(shè)施,甚至可能已決定使用哪種框架來(lái)處理所有這些數(shù)據(jù),但是有一個(gè)決定遲遲未能做出:我該選擇哪種語(yǔ)言?(或者可能更有針對(duì)性的問題是,我該迫使我的所有開發(fā)人員和數(shù)據(jù)科學(xué)家非要用哪種語(yǔ)言?)這個(gè)問題不會(huì)推遲太久,遲早要定奪。



如何選擇大數(shù)據(jù)的編程語(yǔ)言

分享之前我還是要推薦下我自己創(chuàng)建的大數(shù)據(jù)學(xué)習(xí)交流Qun531629188無(wú)論是大牛還是想轉(zhuǎn)行想學(xué)習(xí)的大學(xué)生小編我都挺歡迎,今天的已經(jīng)資訊上傳到群文件,不定期分享干貨,包括我自己整理的一份最新的適合2018年學(xué)習(xí)的大數(shù)據(jù)教程,歡迎初學(xué)和進(jìn)階中的小伙伴。

當(dāng)然,沒有什么阻止得了你使用其他機(jī)制(比如XSLT轉(zhuǎn)換)來(lái)處理大數(shù)據(jù)工作。但通常來(lái)說,如今大數(shù)據(jù)方面有三種語(yǔ)言可以選擇:R、Python和Scala,外加一直以來(lái)屹立于企業(yè)界的Java。那么,你該選擇哪種語(yǔ)言?為何要選擇它,或者說何時(shí)選擇它?

R

R經(jīng)常被稱為是“統(tǒng)計(jì)人員為統(tǒng)計(jì)人員開發(fā)的一種語(yǔ)言”。如果你需要深?yuàn)W的統(tǒng)計(jì)模型用于計(jì)算,可能會(huì)在CRAN上找到它――你知道,CRAN叫綜合R檔案網(wǎng)絡(luò)(ComprehensiveRArchiveNetwork)并非無(wú)緣無(wú)故。說到用于分析和標(biāo)繪,沒有什么比得過ggplot2。而如果你想利用比你機(jī)器提供的功能還強(qiáng)大的功能,那可以使用SparkR綁定,在R上運(yùn)行Spark。

然而,如果你不是數(shù)據(jù)科學(xué)家,之前也沒有用過Matlab、SAS或OCTAVE,可能需要一番調(diào)整,才能使用R來(lái)高效地處理。雖然R很適合分析數(shù)據(jù),但是就一般用途而言不太擅長(zhǎng)。你可以用R構(gòu)建模型,但是你需要考慮將模型轉(zhuǎn)換成Scala或Python,才能用于生產(chǎn)環(huán)境,你不太可能使用這種語(yǔ)言編寫一種集群控制系統(tǒng)(運(yùn)氣好的話,你可以對(duì)它進(jìn)行調(diào)試)。

Python

如果你的數(shù)據(jù)科學(xué)家不使用R,他們可能就會(huì)徹底了解Python。十多年來(lái),Python在學(xué)術(shù)界當(dāng)中一直很流行,尤其是在自然語(yǔ)言處理(NLP)等領(lǐng)域。因而,如果你有一個(gè)需要NLP處理的項(xiàng)目,就會(huì)面臨數(shù)量多得讓人眼花繚亂的選擇,包括經(jīng)典的NTLK、使用GenSim的主題建模,或者超快、準(zhǔn)確的spaCy。同樣,說到神經(jīng)網(wǎng)絡(luò),Python同樣游刃有余,有Theano和Tensorflow;隨后還有面向機(jī)器學(xué)習(xí)的scikit-learn,以及面向數(shù)據(jù)分析的NumPy和Pandas。

還有Juypter/iPython――這種基于Web的筆記本服務(wù)器框架讓你可以使用一種可共享的日志格式,將代碼、圖形以及幾乎任何對(duì)象混合起來(lái)。這一直是Python的殺手級(jí)功能之一,不過這年頭,這個(gè)概念證明大有用途,以至于出現(xiàn)在了奉行讀取-讀取-輸出-循環(huán)(REPL)概念的幾乎所有語(yǔ)言上,包括Scala和R。

Python往往在大數(shù)據(jù)處理框架中得到支持,但與此同時(shí),它往往又不是“一等公民”。比如說,Spark中的新功能幾乎總是出現(xiàn)在Scala/Java綁定的首位,可能需要用PySpark編寫面向那些更新版的幾個(gè)次要版本(對(duì)SparkStreaming/MLLib方面的開發(fā)工具而言尤為如此)。

與R相反,Python是一種傳統(tǒng)的面向?qū)ο笳Z(yǔ)言,所以大多數(shù)開發(fā)人員用起來(lái)會(huì)相當(dāng)?shù)眯膽?yīng)手,而初次接觸R或Scala會(huì)讓人心生畏懼。一個(gè)小問題就是你的代碼中需要留出正確的空白處。這將人員分成兩大陣營(yíng),一派覺得“這非常有助于確??勺x性”,另一派則認(rèn)為,2016年,我們應(yīng)該不需要就因?yàn)橐恍写a有個(gè)字符不在適當(dāng)?shù)奈恢茫鸵仁菇忉屍髯尦绦蜻\(yùn)行起來(lái)。

Scala

現(xiàn)在說說Scala:在本文介紹的四種語(yǔ)言中,Scala是最輕松的語(yǔ)言,因?yàn)榇蠹叶夹蕾p其類型系統(tǒng)。Scala在JVM上運(yùn)行,基本上成功地結(jié)合了函數(shù)范式和面向?qū)ο蠓妒剑壳八诮鹑诮绾托枰幚砗A繑?shù)據(jù)的公司企業(yè)中取得了巨大進(jìn)展,常常采用一種大規(guī)模分布式方式來(lái)處理(比如Twitter和LinkedIn)。它還是驅(qū)動(dòng)Spark和Kafka的一種語(yǔ)言。

由于Scala在JVM里面運(yùn)行,它可以立即隨意訪問Java生態(tài)系統(tǒng),不過它也有一系列廣泛的“原生”庫(kù),用于處理大規(guī)模數(shù)據(jù)(尤其是Twitter的Algebird和Summingbird)。它還包括一個(gè)使用非常方便的REPL,用于交互式開發(fā)和分析,就像使用Python和R那樣。

我個(gè)人非常喜歡Scala,因?yàn)樗ㄔS多實(shí)用的編程功能,比如模式匹配,而且被認(rèn)為比標(biāo)準(zhǔn)的Java簡(jiǎn)潔得多。然而,用Scala來(lái)開發(fā)不止一種方法,這種語(yǔ)言將此作為一項(xiàng)特色來(lái)宣傳。這是好事!不過考慮到它擁有圖靈完備(Turing-complete)的類型系統(tǒng)和各種彎彎曲曲的運(yùn)算符(“/:”代表foldLeft,“:”代表foldRight),很容易打開Scala文件,以為你看到的是某段討厭的Perl代碼。這就需要在編寫Scala時(shí)遵循一套好的實(shí)踐和準(zhǔn)則(Databricks的就很合理)。

另一個(gè)缺點(diǎn)是,Scala編譯器運(yùn)行起來(lái)有點(diǎn)慢,以至于讓人想起以前“編譯!”的日子。不過,它有REPL、支持大數(shù)據(jù),還有采用Jupyter和Zeppelin這一形式的基于Web的筆記本框架,所以我覺得它的許多小問題還是情有可原。

Java

最終,總是少不了Java――這種語(yǔ)言沒人愛,被遺棄,歸一家只有通過起訴谷歌才有錢可賺時(shí)才似乎關(guān)心它的公司(注:Oracle)所有,完全不時(shí)髦。只有企業(yè)界的無(wú)人機(jī)才使用Java!不過,Java可能很適合你的大數(shù)據(jù)項(xiàng)目。想一想HadoopMapReduce,它用Java編寫。HDFS呢?也用Java來(lái)編寫。連Storm、Kafka和Spark都可以在JVM上運(yùn)行(使用Clojure和Scala),這意味著Java是這些項(xiàng)目中的“一等公民”。另外還有像GoogleCloudDataflow(現(xiàn)在是ApacheBeam)這些新技術(shù),直到最近它們還只支持Java。

Java也許不是搖滾明星般備受喜愛的首選語(yǔ)言。但是由于研發(fā)人員在竭力理清Node.js應(yīng)用程序中的一套回調(diào),使用Java讓你可以訪問一個(gè)龐大的生態(tài)系統(tǒng)(包括分析器、調(diào)試器、監(jiān)控工具以及確保企業(yè)安全和互操作性的庫(kù)),以及除此之外的更多內(nèi)容,大多數(shù)內(nèi)容在過去二十年已久經(jīng)考驗(yàn)(很遺憾,Java今年迎來(lái)21歲,我們都老矣)。

炮轟Java的一個(gè)主要理由是,非常繁瑣冗長(zhǎng),而且缺少交互式開發(fā)所需的REPL(R、Python和Scala都有)。我見過10行基于Scala的Spark代碼迅速變成用Java編寫的變態(tài)的200行代碼,還有龐大的類型語(yǔ)句,它們占據(jù)了屏幕的大部分空間。然而,Java8中新的Lambda支持功能對(duì)于改善這種情況大有幫助。Java從來(lái)不會(huì)像Scala那么緊湊,但是Java8確確實(shí)實(shí)使得用Java進(jìn)行開發(fā)不那么痛苦。

你該使用哪種語(yǔ)言用于大數(shù)據(jù)項(xiàng)目?恐怕這還得“視情況而定”。如果你對(duì)晦澀的統(tǒng)計(jì)運(yùn)算進(jìn)行繁重的數(shù)據(jù)分析工作,那么你不青睞R才怪。如果你跨GPU進(jìn)行NLP或密集的神經(jīng)網(wǎng)絡(luò)處理,那么Python是很好的選擇。如果想要一種加固的、面向生產(chǎn)環(huán)境的數(shù)據(jù)流解決方案,又擁有所有重要的操作工具,Java或Scala絕對(duì)是出色的選擇。

當(dāng)然,不一定非此即彼。比如說,如果使用Spark,你可以借助靜態(tài)數(shù)據(jù),使用R或Python來(lái)訓(xùn)練模型和機(jī)器學(xué)習(xí)管道(pipeline),然后對(duì)該管道進(jìn)行序列化處理,倒出到存儲(chǔ)系統(tǒng),那里它可以供你的生產(chǎn)ScalaSparkStreaming應(yīng)用程序使用。雖然你不應(yīng)該過分迷戀某一種語(yǔ)言(不然你的團(tuán)隊(duì)很快會(huì)產(chǎn)生語(yǔ)言疲勞),使用一套發(fā)揮各自所長(zhǎng)的異構(gòu)語(yǔ)言也許會(huì)給大數(shù)據(jù)項(xiàng)目帶來(lái)成效。

以上就是關(guān)于扣丁學(xué)堂大數(shù)據(jù)培訓(xùn)之如何選擇大數(shù)據(jù)的編程語(yǔ)言詳解,希望對(duì)同學(xué)們了解大數(shù)據(jù)有所幫助,

想要了解更多內(nèi)容的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)咨詢。想要學(xué)好大數(shù)據(jù)開發(fā)小編給大家推薦口碑良好的扣丁學(xué)堂,扣丁學(xué)堂有專業(yè)老師錄制的大數(shù)據(jù)視頻教程輔助學(xué)員學(xué)習(xí),此外還有與時(shí)俱進(jìn)的大數(shù)據(jù)視頻直播課供大家學(xué)習(xí),想要學(xué)好大數(shù)據(jù)開發(fā)技術(shù)的小伙伴快快行動(dòng)吧??鄱W(xué)堂大數(shù)據(jù)學(xué)習(xí)群:209080834。

扣丁學(xué)堂微信公眾號(hào)


【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】 


查看更多關(guān)于“大數(shù)據(jù)培訓(xùn)資訊”的相關(guān)文章>

標(biāo)簽: 大數(shù)據(jù)培訓(xùn) 大數(shù)據(jù)視頻教程 大數(shù)據(jù)分析培訓(xùn) 大數(shù)據(jù)學(xué)習(xí)視頻 Hadoop生態(tài)圈

熱門專區(qū)

暫無(wú)熱門資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部