1.环境准备
在Windows下使用Pycharm运行Spark代码_SpecialRiot的博客-CSDN博客
2.代码实现
分词使用的jieba分词框架,通过分词后进行wordCount操作再对value进行排序,截取前N个。
from pyspark import SparkConf,SparkContext
import jieba
def main(sc):
textFile = sc.textFile("./word.txt")
#分词 一行变多行
rdd1 = textFile.flatMap(lambda line:jieba.cut(line, cut_all= False))
#转为KV
rdd2 = rdd1.map(lambda word: (word, 1))
#根据K进行合并,并将V的值累加
rdd3 = rdd2.reduceByKey(lambda a, b: a + b)
#根据V进行降序排序
rdd4 = rdd3.sortBy(lambda x: x[1], ascending = False)
#获取前10条数据
rdd5 = rdd4.take(10)
#进行打印
for a in rdd5:
print(a)
if __name__ =="__main__":
conf = SparkConf().setAppName("application")
conf = conf.setMaster("local")
sc = SparkContext(conf=conf)
main(sc)
3.运行结果
结果中符号排序在前,可以先进行数据清理工作再运行。