氫元素 spark的“map”和“flatMap”分別是什么意思?
spark的“map”和“flatMap”分別是什么意思?在spark中,map函數(shù)對每個輸入執(zhí)行指定的操作,然后為每個輸入返回一個對象;而flatmap函數(shù)是兩個操作的集合,即展平前的映射。Map(
spark的“map”和“flatMap”分別是什么意思?
在spark中,map函數(shù)對每個輸入執(zhí)行指定的操作,然后為每個輸入返回一個對象;而flatmap函數(shù)是兩個操作的集合,即展平前的映射。Map()是為RDD中的每個元素使用函數(shù),并用返回的值形成一個新的RDD。Flatmap()將函數(shù)應(yīng)用于RDD中的每個元素,并使用返回的迭代器的所有內(nèi)容形成一個新的RDD。通過這種方式,我們得到一個RDD,它由每個列表中的元素組成,而不是一個列表。有些人很尷尬??纯催@些例子。輸入結(jié)果輸入結(jié)果
1。map的功能很容易理解,即通過函數(shù)操作將RDD中的元素逐個映射到另一個RDD中。flatmap的操作是將函數(shù)應(yīng)用于RDD中的每個元素,并用返回的迭代器的所有內(nèi)容形成一個新的RDD。通常用于分詞。2在spark中,map函數(shù)將對每個輸入執(zhí)行指定的操作,然后為每個輸入返回一個對象;而flatmap函數(shù)是兩個操作的集合-“展平前映射”:操作1:與map函數(shù)相同:對每個輸入執(zhí)行指定的操作,然后為每個輸入返回一個對象。操作2:最后合并所有對象
map:轉(zhuǎn)換RDD的每個元素
flatmap:轉(zhuǎn)換RDD的每個元素,然后展平(即將所有對象合并為一個對象)
例如
//數(shù)據(jù)有兩行數(shù)據(jù),第一行是a、B、C,第二行是1、2、2、3,3
斯卡拉>data.map文件(line1=> line1.split(“,”).collect()
res11:Array[Array[String
=數(shù)組(Array(a,b,c),Array(1,2,3))
scala>data.flatMap格式(line1=> line1.split(“,”).collect()
res13:Array[String]=Array(a,b,c,1,2,3)