map和flatmap的区别
我看到网上的这些抄例子,真是醉了,所有人用的都是一个例子,这个例子还很不好理解,于是写了这个,就不搞理绕口的理论介绍了,直接看例子吧
map
rdd1 = sc.parallelize(["a b c","d e f","h i j"])
rdd2 = rdd1.map(lambda x:x.split(" "))
rdd2.collect()
>>> [['a', 'b', 'c'], ['d', 'e', 'f'], ['h', 'i', 'j']]
flatmap
rdd1 = sc.parallelize(["a b c","d e f","h i j"])
rdd2 = rdd1.flatMap(lambda x:x.split(" "))
rdd2.collect()
>>> ['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j']
也就是说map不会讲原先的列表中的元素全部扁平化,而flatmap则会将数据扁平化
Map与FlatMap解析
本文通过实例对比了Map和FlatMap在处理数据时的主要区别。Map操作保留了原始数据结构,而FlatMap则将嵌套的数据结构扁平化为单一列表,便于进一步处理。
749

被折叠的 条评论
为什么被折叠?



