學習最新的大數據技術 – Spark! 並學習使用最流行的程式語言之一 Python 來實踐 Spark!
分析大量數據集的能力是當今最有價值的技術技能之一,本課程特別設計來幫助你快速掌握完成此任務的這最佳技術之一 Apache Spark ! Googleı、Facebook、Netflix、Airbnb、Amazon、NASA 等頂尖技術公司/組織都在使用 Spark 來解決他們的大數據問題!
Spark 可以比 Hadoop MapReduce 執行速度高上100倍,這引發了該技能的需求激增! 由於 Spark 2.0 DataFrame 框架非常新穎,你現在可以快速成為就業市場上最有知識的人之一!
本課程將通過 Python 速成建立基礎,接著帶你學習如何使用 Spark DataFrames 和最新的 Spark 2.0 語法! 一旦我們完成了這些工作,我們將學習如何使用帶有 DataFrame 語法和 Spark 的 MLlib Machine Library。 一路下來,你將做過練習和模擬諮詢專案,使你能夠立即進入真實的世界,有能力使用新技能解決實際問題!
https://softnshare.com/spark-and-python-for-big-data-with-pyspark/
mapreduce框架 在 軟體開發學習資訊分享 Facebook 的最佳貼文
--課程已於 2020 年 2 月更新--
課程已就 Spark 3.0 更新!
本課程的講師 Frank Kane ( http://bit.ly/2GE7Zje ) 曾於 Amazon 和 IMDb 9 年,開發和管理過自動向億萬客戶提供產品和電影推薦的技術,且擁有分散式計算 、資料探勘和機器學習等領域擁有 17 項專利。 本課程將帶你深入 20多個案例(如電影評等來查找彼此相似的電影),由簡到繁,在自己的系統或使用 Amazon 的 Elastic MapReduce 雲端服務,運用 Scala、Apache Spark、Hadoop 親手分析大數據!
從這 7.5 小時的課程,你會學到
✅將大數據分析問題框架架構為 Apache Spark 腳本
✅使用 Scala 程式語言開發分散式程式
✅通過切割( partitioning )、快取( caching )和其它技術優化 Spark 作業
✅在 Hadoop 叢集上建構、佈署和運行 Spark 腳本
✅使用 Spark Streaming 處理持續的資料流
✅使用 SparkSQL 和 DataFrames 轉換結構化資料
✅使用 GraphX 走訪和分析圖形結構
https://softnshare.com/apache-spark-with-scala-hands-on-with-big-data/
mapreduce框架 在 91 敏捷開發之路 Facebook 的精選貼文
挺贊同的,在開發團隊該建立的一些共識、規範或標準,這些是新進工程師(不一定是菜鳥)最一開始該熟悉的東西。
--
我挺喜歡 codelabs 的概念,每間公司或多或少都會有自己包的 package 或 component, 應該要有針對這些東西怎麼用、何時用,有什麼限制,以及為何這樣設計,幫助新進工程師了解。
很不錯的六個原則。
https://buzzorange.com/techorange/2016/…/06/google-engineer/
——
以下是我從 Google 工程文化中學到的六個核心原則,你可以從以下各項中學習:
1. 致力共享工具和抽象(abstractions)的工程資源
從很早以前起,Google 對於整個工程組織共用的工具和抽象(abstractions),如 Protocol Buffers、MapReduce、BigTable 等方面密集地投資。 這種好好地一次把問題解決然後讓所有內部的人都能採用的態度最終獲得很高的回報。
每個團隊不用花太大的心力去考慮要使用哪些工具,有專門的工具團隊服務且專注於改善,提高工程團隊的生產力,這些改善很容易傳播給每位已在使用工具或服務的人。
和既有的工程組織(每個團隊可能使用非常不同的工具鏈)形成對比,這一理念也意味著,一旦你已經知道基礎的建構區塊後,便能很容易地理解許多專案背後的設計。這種方法的缺點是,有時你可能會被迫把你的使用案例做些調適,以配合某些特殊支援的工具,甚至它對於你目前的工作來說不是最好的。
2. 為新進工程師投資可重複使用的培訓教材
我能夠迅速在 Google 中有生產力的原因之一是因為 Google 一直以來投入大量資源投入到名為 codelabs 的培訓文件中。
Codelabs 包含了公司的核心抽象層(core abstractions),解釋了為什麼它們被如此設計,突顯程式庫中的相關片段,然後通過幾個實踐的練習驗證理解。沒有這些,我需要更多的時間來了解我能有效率工作所需要知道的眾多技術,這也意味著我的同事不得不花更多的時間向我解釋這些知識。
我在 Google Codelabs 的正面經驗強烈地啟發我後來在 Quora 的 到職流程 推動 codelabs 的決心。
3. 標準化程式設計風格
關於空格、大寫、行長、是否使用 智慧指標(smart pointers)等的每個約定可能單獨看起來微不足道,但是當你達到 Google 的規模時,具有巨大的影響。我不會是第一個承認,當程式碼審查者對我的程式碼挑三揀四,只因為我不正確地縮進一行或因添加兩個字符而超過規定的行列長度很煩的人。
但是因為每個人都遵循相同的規定,瀏覽原始碼明顯地容易許多。在交換團隊或處理跨功能專案時,將需要費點功夫來學習新團隊的規定。當你的團隊小的時候,很容易就忽略的像規定這種事,但隨著程式碼基底(codebase)和團隊成長到某個程度,需要花在變更上的力氣越來越多,你會開始意識到需要一些一致性。
如果可能,儘早規劃團隊一致的規定,或者也可直接使用 Google 開源的樣式指南(style guides)。
4. 透過程式碼審查提高程式碼品質
要求 程式碼審查 並為每個更改以程式來強制執行,減慢了迭代速度,但優化了程式碼的品質。新進工程師將由於收到他們需要的回饋,可快速掌握最佳實踐並收斂程式碼的品質到可接受的水準。
整體上有更高品質的程式碼意味著新進工程師以這品質起始建模,如此將更有可能一開始就寫出更乾淨的程式碼。 因此,程式碼審查是有助於公司擴大規模還能讓所開發的軟體維持高品質的流程。
5. 取得正確的數據(而且要很多)來解決許多問題
Google 研究部主任 Peter Norvig 經常談到「數據由不合理變有效」(註 6)(註 7)(譯註 : 經由合理化模型將許多混亂的文字、圖像和影片變成有效訊息),以解決複雜的問題。
正確的數據可以幫助你了解使用者、分析辦公室政治、解決爭議,並追踪進度。開發日誌和數據基礎架構(例如 Sawzall 和 MapReduce)使 Google 的工程師可以篩選大量數據。
6. 自動化測試以擴展你的程式碼
Google 有非常強大的單元測試文化,「測試在洗手間」是其中一個明顯的案例。幾乎每一個我所做的程式碼修改都伴隨著一個單元測試,程式碼審查人員將嚴格檢查它們。
這使得開發一個指定的變更比較慢,但也意味著成百上千的工程師可以在程式碼基底(codebase)裡相同的部分做擴充與修改,而不犧牲太多的品質或可靠性。 類似投資共享工具的作法,Google 也共享測試框架並致力最佳測試實踐的教育訓練,讓寫測試更加容易。