您的位置:首页 > 编程语言 > Python开发

Spark基础转换及行动操作(python实验)

2018-03-05 20:54 344 查看
注意:实验前先引入包from pyspark.context import SparkContext ,还需配置 sc = SparkContext('local', 'test') ,然后才能用sc做操作。

一、常见的转换操作

1、map() : 将函数应用于RDD中的每个元素,将返回值构成新的RDD



2、flatMap() :将函数应用于RDD 中的每个元素,将返回的迭代器的所有内容构成新的RDD。通常用来切分单词(以[1,2,3,4]数据集为例)



3、filter() : 返回一个由通过传给filter()的函数的元素组成的RDD





4、distinct() :去重



5、sample(withReplacement, fraction, [seed]) :对RDD采样,以及是否替换(就是随机取几个出来,所以每次结果可能不一样)。
 


以上是对一个数据集处理,下面是针对两个以上的数据集
1、union() :生成一个包含两个RDD 中所有元素的RDD(是所有,不得去重)



2、intersection() :求两个RDD 共同的元素的RDD



3、subtract() :移除一个RDD 中的内容(例如移除训练数据)



4、cartesian() : 与另一个RDD 的笛卡儿积



二、常见的行动操作

1、reduce() :它接收一个函数作为参数,这个函数要操作两个RDD 的元素类型的数据并返回一个同样类型的新元素。



上面例子中,若传入列表结果为9;若传入集合结果为6,这是因为python集合会去重了才作为参数传入计算。
2、fold() :它和reduce() 类似,接收一个与reduce() 接收的函数签名相同的函数,再加上一个“初始值”来作为每个分区第一次调用时的结果



3、collect() :返回RDD中的所有元素
注意:使用collect()要求数据不是很大,所有数据都必须能一同放入单台机器的内存中,常用于单元测试中。
4、count() :RDD 中的元素个数



5、countByValue():各元素在RDD 中出现的次数
 


实验得知,python返回的是一个字典,通过键可以获取对应次数。
6、take(num) :从RDD中返回num个元素



7、top(num) :从RDD中返回最前面的num个元素



8、takeOrdered(num):函数用于从RDD中,按照默认(降序)或者指定的排序规则,返回前num个元素。



9、takeSample(withReplacement, num, [seed]):从RDD中返回任意一些元素



10、aggregate(zeroValue)(seqOp, combOp):和reduce() 相似,但是通常返回不同类型的函数
11、foreach(func):对RDD中的每个元素使用给定的函数

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: