使用 alexmerced/datanotebook Docker 镜像
内容提要
本文介绍了alexmerced/datanotebook docker镜像,用于快速创建数据笔记本环境,不包含Spark。镜像提供多个库,适用于临时数据工程和数据分析工作。还介绍了连接到远程Spark服务器的方法。
延伸解读
镜像定位:轻量级数据笔记本环境
该镜像专为快速启动数据笔记本设计,与作者之前的 spark35notebook 镜像不同,它不在容器内运行 Spark,因此无需令牌即可访问笔记本。适合临时数据工程和分析任务,但需注意其不包含 Spark 服务,仅安装了 pySpark 库。
数据持久化与访问方式
通过 docker run 命令将当前目录映射到容器内 /home/pydata/work,实现文件持久化。启动后访问 localhost:8888 即可使用。示例展示了用 Polars 创建 DataFrame 并写入 Parquet 文件,验证了环境的基本数据处理能力。
预装库覆盖常见数据任务
镜像预装了丰富的数据科学库,涵盖数据处理(pandas、numpy、polars、dask、ibis)、机器学习(scikit-learn、tensorflow、torch、xgboost、lightgbm)、可视化(matplotlib、seaborn、plotly)、数据库访问(psycopg2-binary、mysqlclient、sqlalchemy、duckdb、pyarrow)及对象存储(boto3、s3fs、minio)等。用户也可通过 pip 安装额外库。
连接远程 Spark 与 MinIO 的配置
由于容器内无 Spark,需连接外部 Spark 服务器。示例展示了配置 SparkSession 连接远程 Spark master 和 MinIO 对象存储的方法,包括设置 S3A 端点、访问密钥等参数,并演示了创建 DataFrame、过滤数据及读写 Parquet 文件到 MinIO 的流程。
Q&A
alexmerced/datanotebook Docker 镜像的主要用途是什么?
该镜像用于快速创建数据笔记本环境,适合临时数据工程和数据分析工作。
如何使用 docker 命令创建 alexmerced/datanotebook 容器?
可以使用命令:docker run -p 8888:8888 -v $(pwd):/home/pydata/work --name my_notebook alexmerced/datanotebook。
这个 Docker 镜像包含哪些库?
镜像提供了 pandas、numpy、polars、dask、scikit-learn、tensorflow、matplotlib 等多个库。
如何在这个镜像中安装额外的库?
可以使用 pip 命令,例如:!pip install polars。
如何连接到远程 Spark 服务器?
可以通过配置 SparkSession,设置 master URL 和相关的 MinIO 配置来连接远程 Spark 服务器。
这个 Docker 镜像是否支持 Spark?
该镜像不包含 Spark,但安装了 pySpark,可以连接到外部 Spark 服务器。