1. 程式人生 > >spark快速大資料分析之讀書筆記-flatmap與map的區別

spark快速大資料分析之讀書筆記-flatmap與map的區別

以前總是分不清楚spark中flatmap和map的區別,現在弄明白了,總結分享給大家,先看看flatmap和map的定義。

map()是將函式用於RDD中的每個元素,將返回值構成新的RDD。

flatmap()是將函式應用於RDD中的每個元素,將返回的迭代器的所有內容構成新的RDD,這樣就得到了一個由各列表中的元素組成的RDD,而不是一個列表組成的RDD。

有些拗口,看看例子就明白了。

val rdd = sc.parallelize(List("coffee panda","happy panda","happiest panda party"))

輸入

rdd.map(x=>x)
.collect

結果

res9: Array[String] = Array(coffee panda, happy panda, happiest panda party)

輸入

rdd.flatMap(x=>x.split(" ")).collect

結果

res8: Array[String] = Array(coffee, panda, happy, panda, happiest, panda, party)

flatMap說明白就是先map然後再flat,再來看個例子

val rdd1 = sc.parallelize(List(1,2,3,3))
scala> rdd1.map
(x=>x+1)
.collect res10: Array[Int] = Array(2344)
scala> rdd1.flatMap(x=>x.to(3)).collect
res11: Array[Int] = Array(1232333)

相關推薦

spark快速資料分析讀書筆記-flatmapmap區別

以前總是分不清楚spark中flatmap和map的區別,現在弄明白了,總結分享給大家,先看看flatmap和map的定義。 map()是將函式用於RDD中的每個元素,將返回值構成新的RDD。 flatmap()是將函式應用於RDD中的每個元素,將返回的迭代器的所有內

Spark快速資料分析》——讀書筆記(4)

第4章 鍵值對操作 鍵值對RDD通常用來進行聚合計算。我們一般要先通過一些初試ETL(抽取、轉化、裝載)操作來將資料轉化為鍵值對形式。 本章也會討論用來讓使用者控制鍵值對RDD在各節點上分佈情況的高階特性:分割槽。 4.1 動機 pair RDD(包

跟我一起學Spark——《Spark快速資料分析》pdf版下載

連結:https://pan.baidu.com/s/1vjQCJLyiXzIj6gnCCDyv3g  提取碼:ib01 國慶第四天,去逛了半天的王府井書店,五層出電梯右邊最裡面,倒數第三排《資料結構》,找到了一本很不錯的書《Spark快速大資料分析》,試讀了下,我很喜歡,也很適合

spark快速資料分析學習筆記(1)

本文是《spark快速大資料分析學習》第三章學習筆記,文中大量摘抄書中原本,僅為個人學習筆記。 RDD基礎: RDD是一個不可變的分散式物件集合。每個RDD都被分為多個分割槽,這個分割槽執行在叢集的不同節點上。RDD可以包含Python、Java、Scala中任意型別的物件。 建立RDD的方式:

<Spark快速大數據分析>讀書筆記

磁盤 外部 闖關 計算 apache 忽略 分布 ado format <Spark快速大數據分析>主要使用java, scala和python進行講解,因博主暫未對java和scala展開了解,所以後續總結只通過python進行展示。 Part 1 Spark

<Spark快速大數據分析>讀書筆記(二)

body 數據 單詞 spa line lin pairs clas art PART 3 Pair RDD   Spark為包含鍵值對類型的RDD提供了專有操作,這類RDD叫做Pair RDD(意為“對RDD”)   Spark中Pair RDD的創建主要有兩種方式,一種

Spark快速資料分析(一)

楔子 Spark快速大資料分析 前3章內容,僅作為學習,有斷章取義的嫌疑。如有問題參考原書 Spark快速大資料分析 以下為了打字方便,可能不是在注意大小寫 1 Spark資料分析導論 1.1 Spark是什麼 Spark是一個用來實現快速而通用的叢

Spark快速資料分析——機器學習

楔子 《Spark快速大資料分析》學習 11 基於MLlib的機器學習 ​ MLlib是Saprk中提供機器學習函式的庫。它是專門在叢集上並行的情況而設計的。MLlib中包含許多機器學習演算法,可以在Spark支援的所有程式語言中使用。 11.1 概述

Spark快速資料分析》pdf格式下載電子書免費下載

內容簡介 本書由 Spark 開發者及核心成員共同打造,講解了網路大資料時代應運而生的、能高效迅捷地分析處理資料的工具——Spark,它帶領讀者快速掌握用 Spark 收集、計算、簡化和儲存海量資料的方法,學會互動、迭代和增量式分析,解決分割槽、資料本地化和

spark快速資料分析(2)

spark下載與入門spark shell其他shell工具只能使用單機的硬碟和記憶體來操作資料,而spark shell可以用來與分散式儲存在許多機器的記憶體或者硬碟上的資料進行互動,並且處理過程的分發由spark自動控制完成。spark支援許多語言版本,此處互動式shel

顛覆資料分析類似Spark的系統

顛覆大資料分析之類似Spark的系統 譯者:黃經業    購書 Nectar (Gunda 等2010),HaLoop (Bu 等2010),以及Twister(Ekanayake等2010)都是類似於Spark的系統。HaLoop是修改後的Hadoop,它增加了一個支援迴圈的任務排程器以及一

《利用python進行資料分析讀書筆記案例二:全美嬰兒姓名

這份資料包含了從1880到2010年間的嬰兒名字頻率資料,其資料形式是多個txt檔案,且用逗號分隔,可以用pandas.read_csv將其載入到DataFrame中,並且用pandas.concat將所有資料都組裝到一個DataFrame。  years=range

用Apache Spark進行資料處理Spark GraphX圖資料分析(6)

import org.apache.spark._ import org.apache.spark.graphx._ import org.apache.spark.rdd.RDD import java.util.Calendar // 先匯入邊 val graph = GraphLoader.edgeL

《利用python進行資料分析讀書筆記案例一:來自bit.ly的1.usa.gov資料

        從網上下來的資料檔案,先讀取檔案中的第一行檢視是什麼資料型別 path="usagov_data.txt" open(path).readline()          結果是:                   從上面的資料格

Spark快速大數據分析RDD基礎

數學 ref 內存 相關 應用 級別 要求 分數 png Spark 中的RDD 就是一個不可變的分布式對象集合。每個RDD 都被分為多個分區,這些分區運行在集群中的不同節點上。RDD 可以包含Python、Java、Scala中任意類型的對象,甚至可以包含用

《需求工程-軟件建模分析讀書筆記六》

想要 gpo 窗口 業務規則 dbm 恢復 dem 數據庫管理系統 困難 設計良好的程序要最大化類的內聚同時要最小化類的耦合;遵循Demeter法則就是在類方法內用於指向對象的消息,那麽耦合和內聚的原理就可以實現;存取程序方法的過度使用會產生不用思考的類;混合實例的內聚

超越Hadoop的資料分析圖形處理尺寸

另一個來自Google的重要工具,看起來超越了Hadoop MR——Pregel框架實現了圖形計算(Malewicez et al.2010)。在Pregel中的計算是由一系列迭代組成的,被稱為supersteps。圖上的每個頂點都與一個使用者定義的計算函式相關聯;Pregel確保每個sup

超越Hadoop的資料分析致謝

首先,我要衷心感謝Vineet Tyagi、AVP和Impetus的創新實驗室主管。Vineet對我幫助很大,並促使我寫這本書。在6、7月份,每個工作日他給我3個小時的時間寫作本書,這是幫助我完成本書的關鍵。任何學術活動都要專門花費很多時間——這時候就得加倍努力,因為我必須在工作之餘寫作。V

顛覆資料分析實時分析的應用

顛覆大資料分析之實時分析的應用 譯者:吳京潤    購書 在這一節,我們將看到構建兩個應用的步驟:一個工業日誌分類系統和一個網際網路流量過濾應用。 工業日誌分類 隨新舊生產工程系統的自動化以及電子工程的發展,大量的機器之間(M2M)的資料正在被生成出來。機器之間的資料可以來自多個不同的源頭,包

顛覆資料分析RDD的表達性

顛覆大資料分析之RDD的表達性 譯者:黃經業    購書 正如前面在比較Spark及DSM系統時所提到的,由於RDD只支援粗粒度的操作,因此它有一定的侷限性。但是RDD的表達性對於大多數程式而言其實已經足夠好了。AMPLabs團隊他們僅花了數百行程式碼就開發出了整個Pregel,這是Spark