from pyspark import SparkContext
from pyspark import SparkConf
# 创建Spark对应此应用程序的配置;必须要设置setAppName名称(可随意写),没有则报错;
# 必须要设置运行模式,local{*] 是我们的本地测试用的模式,zhilocal[*]代表所有可用的线程并行执行,
# local等价于local[1]
conf = SparkConf().setAppName("suiyi").setMaster("local")
# 创建spark上下文环境,接受的参数通常为SparkConf
sc = SparkContext(conf=conf)
# 此时这个list列表数据是在python解释器中
data = ["i love zhe", "i love na", "i love sha"]
# 把上面的list列表并行变成了RDD(弹性分布式数据集)
# RDD就分布式存在spark集群的内存中啦!
rdd = sc.parallelize(data) # parallelize可以并行数据
# flatMap = flat(扁平化,把集合中的元素拿出来) + Map()
# 先执行map操作,再执行flat操作
words = rdd.flatMap(lambda sen: sen.split())
# map操作是对集合也就是RDD里面的每个元素进行操作
pairs = words.map(lambda word: (word, 1))
# reduceByKey = reduce(按匿名函数逻辑把集合进行聚合运算) + groupByKey(按键来分组)
# 先执行groupByKey,再执行reduce
result = pairs.reduceByKey(lambda a, b: a + b).collect()
# collect是把结果从spark端拉取回来到python解释器端
print(result)
02词频统计
最新推荐文章于 2021-09-10 23:40:10 发布