1.7学习总结:pyspark实例WordCount
一:pyspark
Apache Spark是用 Scala编程语言 编写的。为了用Spark支持Python,Apache Spark社区发布了一个工具PySpark。使用PySpark,您也可以使用Python编程语言中的 RDD 。正是由于一个名为 Py4j 的库,他们才能实现这一目标。
PySpark提供了 PySpark Shell ,它将Python API链接到spark核心并初始化Spark上下文。今天,大多数数据科学家和分析专家都使用Python,因为它具有丰富的库集。将Python与Spark集成对他们来说是一个福音。
Pyspark运行在虚拟机中。
二:启动pyspark的方式
Spark的运行模式取决于传递给SparkContext的Master Url值,这个值可以有以下几种:
1.local模式,用于开发测试,其参数详解如下:
2. Yarn模式,生成环境下使用该模式,统一使用Yarn进行整个集群作业(MR、Spark)的资源调度,其参数详解如下:
3.mesos模式
4.Standalone模式,是Spark自带的,如果一个集群是Standalone的话,那么就需要在多台机器上同时部署spark环境,只要修改一台机器配置,就要同步到所有的机器上去,比较麻烦,生产环境中不采取。
进入spark的安装目录后输入./bin/pyspark,这个命令后面可以接以上各种参数,什么都不写的话默认local模式
三:实例WordCount
要求:读取一个文件,统计文件中a与b的个数
from pyspark import SparkConf,SparkContext conf=SparkConf().setMaster("local").setAppNmae("My App") sc=SparkContext(conf=cof) logFile="file:\\\user\a.txt" logData=sc.textFile(logFile,2).cache() numAs=logData.filter(lambda line:'a'in line).count() numBs=logData.filter(lambda line:'b'in line).count() print(numAs,numBs)
四:遇到的问题
4.1 开启pyspark时报错:java.ConnectException:Connection refused
错误原因:未开启hadoop
解决方式:开启hadoop 命令:start-all.sh
4.2 Cannot run multiple SparkContexts at once; existing SparkContext错误
错误原因:之前已经开启过一个SparkContext
解决方式:关闭这个SparkContext 代码:sc.stop()
五:相关视频链接
https://www.bilibili.com/video/BV1oE411s7h7?p=18