pyspark安装python3 (不推荐)

python对应的版本兼容性是个头疼的问题,因此后续再使用pyarrow包的过程中安装出现了不兼容的问题。

所以后续改为使用anaconda3中是适用conda创建虚拟环境来解决这个问题。

参考另外一篇。

 

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

执行显示:

 

posted @ 2022-03-16 20:17  硅谷工具人  阅读(790)  评论(0)    收藏  举报
成功之道,在于每个人生阶段都要有不同的目标,并且通过努力实现自己的目标,毕竟人生不过百年! 所有奋斗的意义在于为个人目标实现和提升家庭幸福,同时能推进社会进步和国家目标! 正如古人讲的正心诚意格物致知,修身齐家治国平天下。