概述
1.keys
功能:
返回所有键值对的key
示例
1 2 3 4 |
|
结果
1 2 3 4 5 6 7 |
|
2.values
功能:
返回所有键值对的value
示例
1 2 3 4 |
|
结果
1 2 3 4 5 6 7 |
|
3.mapValues(func)
功能:
对键值对每个value都应用一个函数,但是,key不会发生变化。
示例
1 2 3 4 |
|
结果
1 2 3 4 |
|
4.map(func)
功能:
将函数作用到数据集的每一个元素上,生成一个新的分布式的数据集(RDD)返回。
示例
>>> rdd = sc.parallelize(["b", "a", "c"])
>>> sorted(rdd.map(lambda x: (x, 1)).collect())
[('a', 1), ('b', 1), ('c', 1)]
"""
def func(_, iterator):
return map(fail_on_stopiteration(f), iterator)
return self.mapPartitionsWithIndex(func, preservesPartitioning)
5.flatMap
flatMap会先执行map的操作,再将所有对象合并为一个对象,返回值是一个Sequence。
def flatMap(self, f, preservesPartitioning=False):
"""
>>> rdd = sc.parallelize([2, 3, 4])
>>> sorted(rdd.flatMap(lambda x: range(1, x)).collect())
[1, 1, 1, 2, 2, 3]
>>> sorted(rdd.flatMap(lambda x: [(x, x), (x, x)]).collect())
[(2, 2), (2, 2), (3, 3), (3, 3), (4, 4), (4, 4)]
"""
def func(s, iterator):
return chain.from_iterable(map(fail_on_stopiteration(f), iterator))
return self.mapPartitionsWithIndex(func, preservesPartitioning)
可以看出,map对 "hello world", "hello fly"这两个对象分别映射为['hello', 'world'], ['hello', 'fly'],而flatMap在map的基础上做了一个合并操作,将这两个对象合并为一个['hello', 'world', 'hello', 'fly'],这就造就了flatMap在词频统计方面的优势。
6.flatMapValues
与mapValues类似,但可以将一个value展开成多个value。
最后
以上就是舒适八宝粥为你收集整理的【spark】常用转换操作:keys 、values、mapValues、map、flatMap、flatMapValues的全部内容,希望文章能够帮你解决【spark】常用转换操作:keys 、values、mapValues、map、flatMap、flatMapValues所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复