Spark运行WordCount例子

Spark运行WordCount例子(python)

一:前提

因为我们是在yarn上运行Spark,所以要有这个环境。文件是从hdfs上读取的,所以hadoop集群要搭建好(单机即可,不需要全分布式)。

下面演示是我在一台机器(master)上运行的。

另外代码用的是Python语言,在jupyter notebook上运行。

二:上传文件

1.查看本地文件:
在这里插入图片描述

2.把本地文件hello.txt上传到hdfs上。

命令:hadoop fs -put hello.txt /class_data

3.在yarn上运行Spark

命令:pyspark --master yarn

4.生成RDD文件

from pyspark import SparkConf,SparkContext
conf = SparkConf().setMaster("local").setAppName("My App")
sc = SparkContext(conf=conf)          #生成SparkContext对象
rdd2 = sc.textFile("hdfs://master:9000/class_data/hello.txt")  #从HDFS里加载RDD
rdd2

结果:

在这里插入图片描述

5.分割字符

rdd4 = rdd2.map(lambda x:x.split(" "))     #用split()函数分割字符
rdd4.collect()                              #map(func)函数作用:将每个元素传递到函数func中,并将结果返回为一个新的数据集

结果:

在这里插入图片描述

6.为每个字符标记

rdd6 = rdd2.flatMap(lambda x:x.split(" "))     #flatMap与map相似,但每个输入函数都可以映射到0或多个输出结果。  
rdd7 = rdd6.map(lambda x:(x,1))
rdd7.collect()

结果:

在这里插入图片描述

7.统计记数

words = rdd7.reduceByKey(lambda a,b:a+b)
words.collect()

结果:

在这里插入图片描述

三、map和flatMap函数的区别

例:

rdd4 = rdd2.map(lambda x:x.split(" "))     
rdd4.collect() 

结果
在这里插入图片描述

rdd6 = rdd2.flatMap(lambda x:x.split(" "))    
rdd6.collect()   

结果
在这里插入图片描述

上面例子我们可以直观的看出来两者的区别。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值