1. 程式人生 > >spark零基礎學習路線指導

spark零基礎學習路線指導

問題導讀


1.你認為spark該如何入門?
2.你認為spark入門程式設計需要哪些步驟?
3.本文介紹了spark哪些程式設計知識?



 

spark學習一般都具有hadoop基礎,所以學習起來更容易多了。如果沒有基礎,可以參考零基礎學習hadoop到上手工作線路指導(初級篇)。具有基礎之後,一般都是按照官網或則視訊、或則文件,比如搭建spark,執行spark例子。後面就不知道做什麼了。這裡整體梳理一下。希望對大家有所幫助。
1.spark場景
在入門spark之前,首先對spark有些基本的瞭解。比如spark場景,spark概念等。推薦參考
Spark簡介:適用場景、核心概念、建立RDD、支援語言等介紹

http://www.aboutyun.com/forum.php?mod=viewthread&tid=9389


2.spark部署
首先還是說些基礎性的內容,非零基礎的同學,可以跳過。
首先還是spark環境的搭建。
about雲日誌分析專案準備6:Hadoop、Spark叢集搭建
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20620
spark環境搭建完畢,例子執行完畢。後面就不知道幹啥了。


這時候我們就需要了解spark。
從不同角度,可以有多種不同的方式:如果我們從實戰工作的角度,下面我們就需要了解開發方面的知識

如果我們從知識、理論的角度,我們就需要了解spark生態系統
下面我們從不同角度來介紹


3.spark實戰
3.1spark開發環境
比如我們從實戰的角度,當我們部署完畢,下面我們就可以接觸開發方面的知識。
對於開發,當然是首先是開發工具,比如eclipse,IDEA。對於eclipse和IDEA兩個都有選擇的,看你使用那個更順手些。

相關資料推薦
Spark整合開發環境搭建-eclipse
http://www.aboutyun.com/forum.php?mod=viewthread&tid=6772


用IDEA開發spark,原始碼提交任務到YARN

http://www.aboutyun.com/forum.php?mod=viewthread&tid=20316


更多:
Spark1.0.0 開發環境快速搭建
http://www.aboutyun.com/forum.php?mod=viewthread&tid=8403

spark開發環境中,如何將原始碼打包提交到叢集
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20979


田毅-Spark開發及本地環境搭建指南
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20313

Spark 開發環境IntelliJ IDEA圖文教程、視訊系統教程
http://www.aboutyun.com/forum.php?mod=viewthread&tid=10122

3.2spark開發基礎
開發環境中寫程式碼,或則寫程式碼的時候,遇到個嚴重的問題,Scala還不會。這時候我們就需要補Scala的知識。如果是會Java或則其它語言,可能會閱讀C,.net,甚至Python,但是Scala,你可能會遇到困難,因為裡面各種符號和關鍵字,所以我們需要真正的學習下Scala。下面內容,是個人的總結,僅供參考
#######################
about雲spark開發基礎之Scala快餐
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20303


spark開發基礎之從Scala符號入門Scala
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20159

spark開發基礎之從關鍵字入門Scala
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20223

更多內容:
spark開發基礎之Scala快餐:開發環境Intellij IDEA 快捷鍵整理【收藏備查】
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20380

學習Scala的過程中,參考了以下資料
《快學Scala》完整版書籍分享
http://www.aboutyun.com/forum.php?mod=viewthread&tid=8713

scala入門視訊【限時下載】
http://www.aboutyun.com/forum.php?mod=viewthread&tid=12434

更多可以搜尋Scala
http://so.aboutyun.com/

#######################
相信上面的資料,足以讓你搞懂Scala。Scala會了,開發環境、程式碼都寫好了,下面我們就需要打包了。該如何打包。這裡打包的方式有兩種:
1.maven
2.sbt
有的同學要問,哪種方式更好。其實兩種都可以,你熟悉那個就使用那個即可。
下面提供一些資料
scala eclipse sbt( Simple Build Tool) 應用程式開發
http://www.aboutyun.com/forum.php?mod=viewthread&tid=9340


使用maven編譯Spark
http://www.aboutyun.com/forum.php?mod=viewthread&tid=11746

更多資料
Spark大師之路:使用maven編譯Spark
http://www.aboutyun.com/forum.php?mod=viewthread&tid=10842

用SBT編譯Spark的WordCount程式
http://www.aboutyun.com/forum.php?mod=viewthread&tid=8587


如何用maven構建spark
http://www.aboutyun.com/forum.php?mod=viewthread&tid=12261

3.3spark開發知識
spark 開發包括spark core的相關元件及運算,還有spark streaming,spark sql,spark mlib,GraphX.

3.3.1spark 程式設計
說到spark程式設計,有一個不能繞過的SparkContext,相信如果你接觸過spark程式,都會見到SparkContext。那麼他的作用是什麼?
SparkContext其實是連線叢集以及獲取spark配置檔案資訊,然後執行在叢集中。如下面程式可供參考

[Scala] 純文字檢視 複製程式碼 ?
1 2 3 4 5 6 7 import org.apache.spark.SparkConf import org.apache.spark.SparkContext val conf = new SparkConf().setAppName(“MySparkDriverApp”).setMaster(“spark://master:7077”).set(“spark.executor.memory”, “2g”) val sc = new SparkContext(conf)

下面圖示為SparkContext作用



當然還有 SQLContext 和HiveContext作用是類似的,同理還有hadoop的Context,它們的作用一般都是全域性的。除了SparkContext,還有Master、worker、DAGScheduler、TaskScheduler、Executor、Shuffle、BlockManager等,留到後面理論部分。這裡的入門更注重實戰操作

我們通過程式碼連線上叢集,下面就該各種記憶體運算了。
比如rdd,dataframe,DataSet。如果你接觸過spark,相信rdd是經常看到的,DataFrame是後來加上的。但是他們具體是什麼。可以詳細參考spark core元件:RDD、DataFrame和DataSet介紹、場景與比較
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20902

看到上面我們其實可能對它們還沒有認識到本質,其實他們就是記憶體的資料結構。那麼資料結構相信我們應該都瞭解過,最簡單、我們經常接觸的就是陣列了。而rdd,跟陣列有一個相同的地方,都是用來裝資料的,只不過複雜度不太一樣而已。對於已經瞭解過人來說,這是理所當然的。這對於初學者來說,認識到這個程度,rdd就已經不再神祕了。那麼DataFrame同樣也是,DataFrame是一種以RDD為基礎的分散式資料集.

rdd和DataFrame在spark程式設計中是經常用到的,那麼該如何得到rdd,該如何建立DataFrame,他們之間該如何轉換。
建立rdd有三種方式,
1.從scala集合中建立RDD
2.從本地檔案系統建立RDD
3.從HDFS建立RDD
詳細參考
spark小知識總結
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20920

如何建立dataframe
df<-data.frame(A=c(NA),B=c(NA))
當然還可以通過rdd轉換而來,通過toDF()函式實現
rdd.toDF()
dataframe同樣也可以轉換為rdd,通過.rdd即可實現
如下面
val rdd = df.toJSON.rdd
為了更好的理解,在看下面例子
[Scala] 純文字檢視 複製程式碼

相關推薦

spark基礎學習路線指導

問題導讀 1.你認為spark該如何入門? 2.你認為spark入門程式設計需要哪些步驟? 3.本文介紹了spark哪些程式設計知識?   spark學習一般都具有hadoop基礎,所以學習起來更容易多了。如果沒有基礎,可以參考零基礎學習

spark基礎學習線路指導【包括spark2】

問題導讀1.你認為spark該如何入門?2.你認為spark入門程式設計需要哪些步驟?3.本文介

機器學習~基礎學習路線

總綱數學 Mathematics在整個機器學習過程中涉及大量矩陣運算和微積分導數的概念,因此建議

大數據基礎學習路線,新人記得保存收藏哦

技術 nat 不可 並不是 amp 有一個 什麽 通過 一份 有很多人對這個東西感興趣,但是對編程語言也不太了解 不過大數據學習並不是高深莫測的,雖然它並沒有多簡單,但是通過努力,零基礎的朋友也是完全可以掌握大數據的。 我個人總結了一下 零基礎學習大數據的話大概分為以下幾步

2018年基礎學習大數據,你的大數據學習路線

大數據 大數據學習 大數據開發 隨著大數據越來越火熱,薪資越來越高,開始吸引著越來越多的人開始想要投身這個行業。其中有許多朋友的都是大數據零基礎,以前並沒有接觸過大數據相關知識。零基礎參加大數據培訓難嗎?這主要取決於你所學習大數據培訓機構的硬性實力,如:大數據師資、大數據課程、大數據項目等等,下面

基礎學習大數據的完整學習路線

AMF bss 數據倉庫 alt idt rii msd qam 基礎   最近很多人都想學習大數據開發,但是卻不知道如何開始學習,今天軟妹子專門整理了一份針對大數據初學者的大數據開發學習路線。   下面分十個章節來說明大數據開發要學習的內容:               

基礎學習大數據怎樣入門Spark

優勢 作業 結合 導致 項目 輸出 轉換 虛擬機 yar 1.什麽是Spark Apache Spark是一個圍繞速度、易用性和復雜分析構建的大數據處理框架。最初在2009年由加州大學伯克利分校的AMPLab開發,並於2010年成為Apache的開源項目之一。 與Hadoo

基礎學習大資料怎樣入門Spark

1.什麼是Spark Apache Spark是一個圍繞速度、易用性和複雜分析構建的大資料處理框架。最初在2009年由加州大學伯克利分校的AMPLab開發,並於2010年成為Apache的開源專案之一。 與Hadoop和Storm等其他大資料和MapReduce技術相比,Spark有如下優勢

基礎學習程式設計路線建議

小碼哥教育的初衷是讓大家瞭解程式設計學習,少走一些彎路,少踩一些坑。首先,你們要了解科班出身的學生和零基礎非科班出身的學生區別在哪兒?科班出身的學生,主要是基礎更為了解,但兩者最大的區別還是,科班的學生知道去自學,大學的程式設計課並不一定就講了很多知識,但一定講了程式設計思維。那作為一個零基礎的程式設計初

「經驗分享」基礎學習web前端需瞭解的企業最新行情+學習路線

下面是我給自學web前端的幾個建議: 建議一:有系統的學習方案,系統的學習教程,先把web前端學了一遍之後才是真正的入門,然後就是不斷的練習,不斷的鞏固,為之後的工作打下堅實的基礎。 建議二:學習web前端不要先看書學,一定要先把一塊的知識點學完一遍,並且自己多多少少會動手操作,然後

大資料基礎學習路線(從開始)

大資料已經火了很久了,一直想了解它學習它結果沒時間,瞭解了一些資料,結合我自己的情況,整理了一個學習路線,。 學習路線 Linux(shell,高併發架構,lucene,solr) Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,

基礎學習web前端路線

很多同學想學習WEB前端開發,雖然網際網路有很多的教程、網站、書籍,可是卻又不知從何開始如何選取。 前端開發入門學習有:HTML、CSS、JavaScript(簡稱JS)這三個部分。所以在學習之前我們需要先明確三個概念: 1、HTML——內容層,它的作用是表示一個HTML標籤在頁面裡是個什麼角色。 2、

Spark (Python版) 基礎學習筆記(一)—— 快速入門

由於Scala才剛剛開始學習,還是對python更為熟悉,因此在這記錄一下自己的學習過程,主要內容來自於spark的官方幫助文件,這一節的地址為: 文章主要是翻譯了文件的內容,但也在裡邊加入了一些自己在實際操作中遇到的問題及解決的方案,和一些補充的小知識,一起學習。 環境

大資料-基礎學習hadoop到上手工作線路指導(初級篇)

零基礎學習hadoop,沒有想象的那麼困難,也沒有想象的那麼容易。在剛接觸雲端計算,曾經想過培訓,但是培訓機構的選擇就讓我很糾結。所以索性就自己學習了。整個過程整理一下,給大家參考,歡迎討論,共同學習。 從一開始什麼都不懂,到能夠搭建叢集,開發。整個過程,只要有Linux基礎,虛擬機器化和java基礎,其

阿里大資料告訴你不可不看的基礎學習大資料人工智慧,學習路線篇!

大資料處理技術怎麼學習呢?首先我們要學習Python語言和Linux作業系統,這兩個是學習大資料的基礎,學習的順序不分前後。 Python:Python 的排名從去年開始就藉助人工智慧持續上升,現在它已經成為了語言排行第一名。 從學習難易度來看,作為一個為“優雅”而生的語

Spark (Python版) 基礎學習筆記(五)—— Spark RDDs程式設計

RDD基礎概念 建立RDD 建立RDD的方法: 1.載入外部資料集 2.分佈一個物件的集合 前邊幾次的筆記已經提到過多次了,因此,這裡只列出幾個注意事項: 1.利用sc.parallelize建立RDD一般只適用於在測試的時候使用,因為這需要我們將整

Spark (Python版) 基礎學習筆記(四)—— Spark概覽

結合了《Learning Spark: Lightning-Fast Big Data Analysis》和官方2.02版本的Spark Document總結了關於Spark概念性的一些知識。幫助大家對Spark有一個總體上的認知 一、Spark的兩個核心概念

2016.6.13 基礎學習hadoop到上手工作線路指導(中級篇)

原文地址 附帶連結(待看) 中級篇學習筆記 進度:內容很多很雜,先看一下後半部分的hadoop生態系統。 操作:並未實際操作。 hadoop生態系統 最常用的是hive和hbase,因此著重學習這兩個。 hive相關學習

Spark (Python版) 基礎學習筆記(二)—— Spark Transformations總結及舉例

1. map(func) 將func函式作用到資料集的每個元素,生成一個新的分散式的資料集並返回 >>> a = sc.parallelize(('a', 'b', 'c')) >>> a.map(lambda x:

Java基礎學習Java編程語言從哪兒入手?

軟件工程是計算機領域發展最快的學科分支之一,國家非常重視軟件行業的發展。對軟件工程師人才的培養給予了非常優惠的政策。在所有軟件開發類人才的需求中對Java工程師的需求達到全部需求量的60~70%。應該說Java軟件工程師就業前景是非常好的,再加上Java軟件工程師不僅IT專業企業需要,廣大的非IT企業也