pyspark安装python3


1. 下载python3地址:https://www.python.org/ftp/python/3.5.9/Python-3.5.9.tgz

注意:由于spark是2.4.8版本,python3版本只能使用3.5版本,太高版本可能会不兼容
我用3.9版本测试有问题。

解压缩后需要编译安装,指定安装路径到python3目录下:

tar -zxvf Python-3.5.9.tgz
cd Python-3.5.9
./configure -prefix=/home/hadoop/bigdata/python3/
make && make install

2. 添加软连接

sudo ln -s /home/hadoop/bigdata/python3/bin/python3 /usr/bin/python3

注意:必须添加软连接,即使在path中配置环境变量也不行

3. 分发python包

scp -r python3 hadoop@cdh192-50:/home/hadoop/bigdata/

4. 在自己本机上通过ansible在每台机器上执行以下命令来添加软连接(不行就手工一个个敲)

准备好hosts文件,执行以下命令:(存在部分机器成功,部分机器报错的情况)

ansible root -m file -a "src=/home/hadoop/bigdata/python3/bin/python3 dest=/usr/bin/python3 state=link"

不行的,就手工进去执行:

ln -s /home/hadoop/bigdata/python3/bin/python3 /usr/bin/python3

5. 修改spark的环境变量spark-env.sh,添加以下配置:

export PYSPARK_PYTHON=/home/hadoop/bigdata/python3/bin/python3

6. 启动pyspark:

7. 准备测试案例(python执行脚本)

"""SimpleApp.py"""
from pyspark.sql import SparkSession

logFile = "/tmp/logs/LICENSE"

# Should be some file on your system
spark = SparkSession.builder.appName("SimpleApp").getOrCreate()
logData = spark.read.text(logFile).cache()

numAs = logData.filter(logData.value.contains('a')).count()
numBs = logData.filter(logData.value.contains('b')).count()

print("Lines with a: %i, lines with b: %i" % (numAs, numBs))

spark.stop()

上传需要的文件LICENSE到hdfs上的/tmp/logs/文件夹中。

8. 提交spark任务到yarn上

spark-submit --master yarn --deploy-mode client --queue prod SimpleApp.py

执行显示: