joc*_*uiz 11 python docker pyspark jupyter folium
我在Ubuntu 15.10中使用Docker容器为Pyspark jupyter/pyspark-notebook工作.我需要安装具有所有依赖关系的folium并在容器中运行Pyspark脚本.我成功安装了Docker,拉出图像并使用命令运行它
docker run -d -p 8888:8888 -p 4040:4040 -v /home/$MYUSER/$MYPROJECT:/home/jovyan/work jupyter/pyspark-notebook
Run Code Online (Sandbox Code Playgroud)
然后,我执行代码示例没有任何问题
import pyspark
sc = pyspark.SparkContext('local[*]')
# do something to prove it works
rdd = sc.parallelize(range(1000))
rdd.takeSample(False, 5)
Run Code Online (Sandbox Code Playgroud)
我查找了conda环境/opt/conda(正如文档中所述),但我的/opt文件夹中没有conda .然后,我将miniconda3和folium安装了所有依赖项作为普通的Python包(不涉及Docker).
它不起作用.当我运行图像并尝试使用import folium它导入包时,找不到folium包:
ImportErrorTraceback (most recent call last)
<ipython-input-1-af6e4f19ef00> in <module>()
----> 1 import folium
ImportError: No module named 'folium'
Run Code Online (Sandbox Code Playgroud)
所以问题可以归结为两个问题:
回答第一个问题conda环境在哪里?我们只需要在控制台中执行$ docker my_containers_name ls /opt/conda.
第二个问题有两个选择:
我们可以通过执行命令打开容器控制台
$ docker exec -it my_containers_name /bin/bash
并像普通的conda包一样安装包
conda install --channel https://conda.anaconda.org/conda-forge folium
我们可以修改Docker镜像的Dockerfile或者创建一个扩展前一个镜像的新Docker文件.创建新的Dockerfile并添加行
FROM jupyter/minimal-notebook
USER jovyan
RUN conda install --quiet --yes --channel https://conda.anaconda.org/conda-forge folium && conda clean -tipsy
Run Code Online (Sandbox Code Playgroud)
并构建我们的新形象.如果我们想修改原始的Dockerfile,我们必须跳过第一行.
我通过分支原始项目来创建自己的Dockerfile.
感谢warmoverflow和ShanShan的意见
| 归档时间: |
|
| 查看次数: |
13365 次 |
| 最近记录: |