将RDD对象转化为python对象
(1)collect算子
"""
collect算子
功能:将RDD各个分区内的数据,统一收集到Driver中,形成一个list对象
用法:rdd.collect() 返回值是一个list
"""
(2)reduce算子
"""
collect算子
功能:将RDD各个分区内的数据,统一收集到Driver中,形成一个list对象
用法:rdd.collect() 返回值是一个list
"""
"""
reduce算子
语法:rdd.reduce(func)
func:(T,T) -> T
2参数传入1个返回值,返回值和参数要求类型一致
"""
from pyspark import SparkConf, SparkContext
import os
os.environ['PYSPARK_PYTHON'] = 'D:\Python3.9\python.exe' # 通过os设置环境变量
if __name__ == '__main__':
# 构建Spark执行环境
conf = SparkConf().setMaster("local[*]").setAppName("create_rdd")
sc = SparkContext(conf=conf)
rdd = sc.parallelize(range(1, 10))
print(rdd.reduce(lambda a, b: a + b))
(3)take算子
"""
take算子
功能:取RDD得前N个元素,组合成list返回给你
用法:sc.parallelize([3,2,1,4,5,6]).take(5)
取出前五个元素组合成list返回给你
"""
from pyspark import SparkContext,SparkConf
import os
os.environ['PYSPARK_PYTHON'] = 'D:\Python3.9\python.exe' # 通过os设置环境变量
if __name__ == '__main__':
# 构建Spark执行环境
conf = SparkConf().setMaster("local[*]").setAppName("create_rdd")
sc = SparkContext(conf=conf)
rdd = sc.parallelize(range(1, 10))
print(rdd.take(5))
(4)count算子
"""
count算子
功能:计算RDD有多少条数据,返回值是一个数字
用法:sc.parallelize([3,2,1,4,5,6]).count
输出:6
"""
将RDD对象转化为文件
"""
saveAsTextFile算子
功能:将RDD的数据写入文本文件中
支持本地写出,hdfs等文件系统
代码:rdd = sc.parallelize([1,2,3,4,5,6])
rdd.saveAsTextFile("../test.txt")
"""
参考内容:黑马程序员