转换操作(Transformations):
1. map(func): 对RDD中的每个元素应用函数func,返回一个新的RDD。
rdd = sc.parallelize([1, 2, 3, 4, 5])
squared_rdd = rdd.map(lambda x: x * x)
2. filter(func): 返回一个仅包含满足条件的元素的新RDD。
rdd = sc.parallelize([1, 2, 3, 4, 5])
filtered_rdd = rdd.filter(lambda x: x % 2 == 0)
3. flatMap(func): 类似于map,但每个输入元素可以映射到零个或多个输出元素。
rdd = sc.parallelize([1, 2, 3, 4, 5])
flat_mapped_rdd = rdd.flatMap(lambda x: (x, x * x))
4. union(other): 返回包含两个RDD元素的并集的新RDD。
rdd1 = sc.parallelize([1, 2, 3])
rdd2 = sc.parallelize([3, 4, 5])
union_rdd = rdd1.union(rdd2)
5. distinct(): 返回一个包含不同元素的新RDD。
rdd = sc.parallelize([1, 2, 2, 3, 4, 4, 5])
distinct_rdd = rdd.distinct()
行动操作(Actions):
1. collect(): 将RDD的所有元素返回给驱动程序。
rdd = sc.parallelize([1, 2, 3, 4, 5])
result = rdd.collect()
2. count(): 返回RDD中元素的个数。
rdd = sc.parallelize([1, 2, 3, 4, 5])
count = rdd.count()
3. reduce(func): 使用二进制操作函数func来减少RDD的元素。
rdd = sc.parallelize([1, 2, 3, 4, 5])
sum_result = rdd.reduce(lambda x, y: x + y)
4. first(): 返回RDD的第一个元素。
rdd = sc.parallelize([1, 2, 3, 4, 5])
first_element = rdd.first()
5. take(n): 返回RDD的前n个元素。
rdd = sc.parallelize([1, 2, 3, 4, 5])
first_three_elements = rdd.take(3)
这些是一些常见的RDD操作,Spark提供了更多的操作,以及优化和分布式计算的支持,允许你有效地处理大规模数据。
转载请注明出处:http://www.pingtaimeng.com/article/detail/9341/Spark