pySpark的worldCount

第一次通过python编写spark:

       1)通过python编写spark需要通过pyspark这个类库来操作spark;

       2)window电脑本地需要安装spark

pyspark官网:http://spark.apache.org/docs/latest/api/python/pyspark.html#pyspark.RDD

参考:https://blog.csdn.net/lc_1123/article/details/79007231

https://www.jianshu.com/p/b5e949261cfd

https://blog.csdn.net/cymy001/article/details/78483723

https://blog.csdn.net/weixin_41512727/article/details/100131995(window环境配置)

 

from pyspark import SparkConf, SparkContext

# 创建SparkConf和SparkContext
conf = SparkConf().setMaster("local").setAppName("wordcount")
sc = SparkContext(conf=conf)

# list
data = ["hello", "world", "hello", "word", "count", "count", "hello"]
#hdfs上一个文件
inputFile = "hdfs://node1.hadoop:9000/README.md"
# 将Collection的data转化为spark中的rdd并进行操作
#rdd = sc.parallelize(data)
rdd = sc.textFile(inputFile)
countRdd = rdd.count() #统计rdd中有多少行数据
#在读取文本文件时是通过一行行读取
print('countRdd:',countRdd)
from operator import add
#resultRdd = rdd.flatMap(lambda line: line.split(" ")).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b)
resultRdd = rdd.flatMap(lambda line: line.split(" ")).map(lambda word: (word, 1)).reduceByKey(add)
# rdd转为collecton并打印
resultColl = sorted(resultRdd.collect())
for line in resultColl:
    print(line)

# 结束
sc.stop()

说明:

  1. sparkContext是spark的核心对象,是构建应用程序的入口
  2. RDD一般构建方式:
    1. 通过一个序列:如list
    2. 通过读取一个文件
    3. 通过一个RDD生成一个新的RDD
  3. lambda表达式:
    1. (lambda line:line.split(" "))=====>line :line.split()左边line是入参,右边line.split()是对参数处理的逻辑表达式
  4. 函数说明:
    1. flatMap():将所有传入参数转为一个list
    2. map():将每个list中元素映射成一个map
    3. reduceByKey():根据map中的key分组做累加
    4. sorted():将元素排序
    5. collect():执行触发

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值