使用Python开发
一、Python编程语言
1.1、Python语言的特点
Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库。如今Python已经成为继JAVA,C++之后的的第三大编程语言。
1、可性移强植 简易单学
2、免开费源 丰富库的
3、可性移强植 高语层言
4、可扩性展
1.2、Python与人工智能
Python被认为是人工智能、机器学习的首选语言。
1.3、PySpark简介
PySpark 是 Spark 为 Python 开发者提供的 API,为了不破坏Spark已有的运行时架构,Spark在外围包装一层Python API,借助Py 4 j实现Python和Java的交互,进而实现通过Python编写Spark应用程序。
二、PySpark启动与日志设置
2.1、PySpark的启动方式
Spark是分为local、standalone、yarn-client、yarn-cluster等运行模式的。local模式用于Spark单机运行,一般用于开发测试。standalone模式用于构建一个由Master+Slave构成的Spark集群,Spark将运行在集群中。Spark on Yarn模式用于Spark客户端直接连接Yarn。Sparkon Mesos模式用于Spark客户端直接连接Mesos。前两个模式都不需要额外构建Spark集群。
启动命令:
pyspark - - master 参数
2.2、日志输出内容控制
控制日志级别,有效的日志级别包括:ALL, DEBUG, ERROR, FATAL,INFO, OFF, TRACE, WARN,控制日志输出内容的方式有两种。
( 1 )修改spark/conf/log 4 j.properties文件中的设置,如设置成WARN
级别以上的信息输出:log 4 j.rootCategory=WARN , console
( 2 )代码中使用setLogLevel(logLevel)控制日志输出,如:sc.setLogLevel(“WARN”)
三、Pyspark开发包的安装
3.1、PySpark的安装
3.1.1、使用pip命令安装,命令:
pip install pyspark
3.1.2、使用离线包安装
其实在安装Spark当中已经包含了PySpark的一个执行文件,路劲为: spark/bin
3.1.3、Pycharm中安装
也可以在Pycharm中安装,在setting中找到解释器,给解释器安装第三方包即可。
四、使用Pycharm 编写Spark应用
4.1、Spark开发应用流程
本地编写 本地调试 提交集群
4.2、Pycharm安装与基本配置
PyCharm是比较好用的Python开发IDE,官网下载地址:
http://www.jetbrains.com/pycharm/download/。目前有Professional和Community两种版本,Professional需要付费,而Community是免费版本,根据需要自己下载安装就行。
4.3、使用Pycharm编写并运行Spark程序
下面运行一个简单的程序,来验证开发环境是否正常,代码如下。如果是
Linux下安装的PyCharm可以直接运行,注意要统计的文本文件的路径要
写对。如果是Windows下的,则需要做一点小小的配置才能直接运行。
import findspark
findspark.init()
from pyspark import SparkContext
logFile ='F:\software\spark\README.md'
sc = SparkContext()#加载文件
logData = sc.textFile(logFile).cache()#数据缓存
numAs = logData.filter(lambda s: 'a'in s).count()#元素过滤
numBs = logData.filter(lambda s: 'b'in s).count()
print("Lines with a:%i,lines with b: %i"%(numAs,numBs))
使用findspark库自动识别spark依赖包,安装findspark模块命令如下:
pip install findspark
4.4、使用spark_submit命令提交Spark程序
程序编写完成后,也可以使用spark-submit命令来提交程序,这样程序就会被提交到Spark集群上运行。
4.5、使用pyspark命令直接编写程序
也可以在命令行直接使用pyspark命令编写我们的程序,注意pyspark命令会自己实例化一个SparkContext,名字叫sc,不需要我们自己实例化。
版权归原作者 墨风 倾城 所有, 如有侵权,请联系我们删除。