- 创建rdd
lines = sc.parallelize([1,2,3,4])
- rdd操作
转换操作:返回的是rdd
函数名 | 补充 |
---|
map() | |
flatMap() | |
filter() | |
distinct() | |
sample() | |
union() | |
行动操作:返回其他数据类型,每当调用一个新的行动操作时,整个rdd从头开始。
函数名 | 补充 |
---|
collect() | |
count() | |
collectByValue() | |
take() | |
top() | |
collect() | |
takeSample() | 从rdd中返回一些元素 |
reduce() | |
foreach() | |
- 持久化
persist()
cache()
必须在transformation或者textfile等创建一个rdd之后,直接连续调用cache()或者persist()才可以,如果先创建一个rdd,再单独另起一行执行cache()或者persist(),是没有用的,而且会报错,大量的文件会丢失。
4.pair rdd 转化操作
函数名 | 补充 |
---|
reduceByKey() | |
groupByKey() | |
reduceByKey() | |
mapValues() | |
flatMpaValues() | |
collectAsMap() | |
lookup(key) | 返回给定key对应的所有值 |
rdd.mapValues(lambda x: (x,1)).reduceBykey(lambda x,y:(x[0]+y[0],x[1]+y[1]))
5.rdd分区