安装Pycharm
Pycharm安装直接到Pycharm官网下载,点击下一步安装即可。
安装Spark
Spark安装同样到Spark官网,选择需要的版本和类型后点击下载解压。
将解压包重命名为spark,移动到以下目录:
mv spark /usr/local
接着配置环境变量,编辑 vim ~./bash_profile
后面追加 :
# spark
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
保存退出后source一下: source ~.bash_profile
最后检查一下是否安装成功:pyspark
启动交互式界面代表成功。
Pycharm配置Spark开发
-
通过Python开发Spark,需要Python借助第三方库py4j和Spark底层Scala交互,而Scala又是基于Java的。所以py4j就是Python和Java交互的一个库。
可以在
preferences->Project:yourProject->Project Interpreter
中点击+号搜索py4j后下载安装。 -
同时Python需要pyspark第三方库,让Python和Spark交互。安装方法同上;或者可以在下载的Spark安装包内把Pyspark包导入到Python的第三方库目录。参考如下:
mv /usr/local/spark/python/pyspark /Users/yourusername/PycharmProjects/PySpark/venv/lib/python3.7/site-packages
其实第三方Python库都会安装在site-packages目录下。
Pyspark示例
这里演示 官网SparkStreaming快速入手,所有实例代码均可以在 /usr/local/spark/examples/src/main/python
中找到,复制到Pycharm中即可。
from pyspark import SparkContext
from pyspark.streaming import StreamingContext
# Create a local StreamingContext with two working thread and batch interval of 1 second
sc = SparkContext("local[2]", "NetworkWordCount")
ssc = StreamingContext(sc, 5)
# Create a DStream that will connect to hostname:port, like localhost:9999
lines = ssc.socketTextStream("localhost", 9999)
# Split each line into words
words = lines.flatMap(lambda line: line.split(" "))
# Count each word in each batch
pairs = words.map(lambda word: (word, 1))
wordCounts = pairs.reduceByKey(lambda x, y: x + y)
# Print the first ten elements of each RDD generated in this DStream to the console
wordCounts.pprint()
ssc.start() # Start the computation
ssc.awaitTermination() # Wait for the computation to terminate
在命令行打开:
nc -lk 9999
启动运行Pycharm的python文件前,需要先配置。
在 Run -> Edit Configurations的Configuration下Environment中Environmen variable
添加SPARK_HOME的目录。
当然source重启后发现Pycharm的Configuration能自动读取SPARK目录,这样就不需要添加也能运行。
现在点击运行并且在终端nc下输入:aaa aaa hhh
运行结果是:
Time: 2019-05-07 19:28:50
-------------------------------------------
('aaa', 2)
('hhh', 1)
小结
Pycharm配置Python的Spark开发,作为快速入门Spark十分便捷,但若要深入理解Spark,最好还是IDEA下配置Spark开发环境。由于Spark是Scala开发的,所以在IDEA上通过Scala和Spark的部署开发更加接近源码。
正如以上所说,Pycharm借助Python的py4j和pyspark第三方库,只需要安装Spark加上一定配置联系就能快速搭建Python的Spark开发环境,十分便捷!同时Python作为胶水语言,凭借强大的第三方库而闻名。
最后说明,在Pycharm这类IDE下运行,其实等价于 spark-submit yourDeom.py。
网友评论