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则会将数据扁平化