spark如何高階學習

時間 2021-06-04 15:53:35

1樓:xiaohei

根據表述,工作中Spark是作為乙個「大資料分析工具」來使用的,那麼DataFrame的API已經足夠使用了。

如果分析邏輯特別複雜或者覺得DF的API效能差需要「優化」(DF的API效能差或者甚至沒有提供,比如矩陣轉置計算等),自己要寫個高效能的版本,那麼RDD的API能夠幫助你完成這個事情。

所以,日常工作DataFrame API足夠使用,往高階發展RDD API也是神兵利器。

另外,如果Spark在分析工作中佔比很大(或者說要分析的資料量很大不得不使用),那了解Spark的執行原理和優化技巧就特別重要,相信你也不願意總是一兩個小時之後才能看到結果繼續迭代吧:-)

寫程式實現功能很簡單,難的是怎麼讓程式以最好、最快、最高的執行效率執行無誤。

那麼可以往Spark的技術細節裡面去了解:

Spark是如何通過從邏輯執行圖轉化為物理執行圖來實現分布式計算的?

Shuffle過程與管理是怎麼回事兒?

記憶體模組、資料共享等其他模組細節都有哪些?

了解完之後你會對Spark的體系有乙個比較系統的認識。

然後根據這些體系知識,從程式開發、資源配置、資料傾斜、Shuffle管理、記憶體使用等方面都根據業務邏輯、應用場景,找到對應的優化技巧。

xiaohei:Spark最佳實踐

主要從四個部分介紹Spark技術與應用:

Spark效能優化:基於前兩章的基礎知識的鋪墊,本章將會從程式開發、資源配置、資料傾斜、Shuffle管理、記憶體使用等方面提供優化技巧,可以為開發人員提供相關的調優思路

Spark最佳實踐:在最後一章中,作者整理了大量Spark開發過程中的實踐經驗與應用技巧,從編碼、監控、資料處理等幾個大維度提供Spark應用程式開發的最佳實踐思路參考。

2樓:富貴竹

Spark需要和其他的元件整合起來才能發揮最大的作用,所以建議樓主還需要學習一些Hive,Kudu等其他元件,了解一下這些元件是如何與Spark進行整合的,各適合什麼樣的場景。

3樓:turbofei

學習Spark可以分為兩個方向。

一種是資料平台開發,另一種是資料分析。

做資料平台開發需要了解Spark的核心原始碼,了解其排程,解析,執行。

做資料分析人員,企業中使用較多的是SQL,需要對Sql了解一些,比如 distributed by的使用。

了解一些spark 中的join分類, 了解sql中的引數。了解 data source, parquet的一些引數。

了解資料傾斜的場景,原理,如何解決資料傾斜。

了解Spark中的一些特性,比如 adaptive execution。

就算是做資料分析,也可以了解一些spark的基本原理,方便定位問題。

如果你是校招生,可能上面的一些點你也接觸不到。

4樓:向磊

竊以為對於spark資料分析新手來說,最重要的高階就是在集群情況下如何不讓executor掛掉,如何合理的使用記憶體和正確預估資料傾斜的可能。

掌握合理的程式設計思維比學什麼語言和工具重要。

自學flink和spark,應該如何去學習呢?

搞個虛擬機器,三颱起 按照文件的描述去部署 然後乙個個運算元實驗過去 嘗試各種不同的配置項 嘗試各種高階特性,例如狀態後台,cep,機器學習等看更有深度的原理性文章,然後去實驗 嘗試看原始碼跟原理相互印證 這樣你大概能混過一些面試,但幹活還差了一點自學也就到這水平了,大資料是屠龍技,還得真的屠過龍才...

學習Spark一定要先學Hadoop嗎?

windofjava hadoop和spark,有關係,但並不是需要先學hadoop才能學spark的關係,它倆之間的對比如下 誕生的先後順序,hadoop屬於第一代開源大資料處理平台,而spark屬於第二代 屬於下一代的spark肯定在綜合評價上要優於第一代的hadoop spark和hadoop...

3D max高階應該如何學習,去哪兒學習?

神仙姐姐 其實網上一堆教程3Dmax自學的,學完以後,你會了軟體,卻做不出來東西,或者做的東西不適合公司或者專案的需求。現在題主問高階如何學習,想必題主已經有3Dmax基礎了。高階的話,你可以考慮選擇你的方向了,用3Dmax可以幹很多任務作,可以做廣告,可以做室內設計,可以做遊戲建模。所以題主只有定...