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:\usera.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)
View Code

四:遇到的问题

  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

原文地址:https://www.cnblogs.com/wangzhaojun1670/p/14316975.html