栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spark运行WordCount例子

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()   

结果

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/761836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号