我在机器中安装了gettyimages/spark
docker
映像和jupyter/pyspark-notebook
。
尽管gettyimage/spark
python版本是3.5.3
,而jupyter/pyspark-notebook
python版本是3.7
,但会出现以下错误:
例外:worker中的Python版本与版本中的Python版本3.5不同 驱动程式3.7,PySpark无法在其他次要版本上执行。 检查环境变量PYSPARK_PYTHON和PYSPARK_DRIVER_PYTHON 设置正确。
因此,我尝试升级gettyimage/spark
映像的python版本或降级jupyter/pyspark-notebook
docker映像的python版本以进行修复。
jupyter/pyspark-notebook
python版本:我使用conda install python=3.5
降级了jupyter/pyspark-notebook
码头工人图像的python版本。但是,这样做之后,我的jupyter
笔记本无法连接到任何单个ipynb
,并且内核似乎已死。另外,当我再次输入conda
时,它显示了conda command not found
,但是python终端运行良好
我已经比较了降级前后的sys.path
['','/ usr / local / spark / python', '/usr/local/spark/python/lib/py4j-0.10.7-src.zip', '/opt/conda/lib/python35.zip','/opt/conda/lib/python3.5', '/opt/conda/lib/python3.5/plat-linux', '/opt/conda/lib/python3.5/lib-dynload', '/opt/conda/lib/python3.5/site-packages']
['','/ usr / local / spark / python', '/usr/local/spark/python/lib/py4j-0.10.7-src.zip', '/opt/conda/lib/python37.zip','/opt/conda/lib/python3.7', '/opt/conda/lib/python3.7/lib-dynload', '/opt/conda/lib/python3.7/site-packages']
我认为或多或少是正确的。那么,为什么我不能使用我的jupyter
笔记本连接到狗窝?
gettyimage/spark
图片sudo docker run -it gettyimages / spark:2.4.1-hadoop-3.0 apt-get安装 python3.7.3; python3 -v
但是,我发现即使我这样做,也无法很好地运行火花。
我不太确定该怎么做。可以和我分享一下如何修改Docker映像内部软件包的版本
答案 0 :(得分:0)
如果我查看Dockerfile here,它会安装python3
,默认情况下,它会为debian:stretch
安装python 3.5。您可以改为通过编辑Dockerfile并自行构建来安装python 3.7。在Dockerfile中,删除第19-25行,并用以下内容替换第1行,然后在本地构建映像。
FROM python:3.7-stretch
如果您不熟悉构建自己的映像,请下载Dockerfile
并将其保存在其自己的独立目录中。然后在cd
进入目录后,运行下面的命令。您可能需要先删除已经下载的图像。之后,您应该能够以与从docker hub拉出映像相同的方式运行其他docker命令。
docker build -t gettyimages/spark .