Jupyter Notebooks
Last updated on • Disponible en Français
The Jupyter Notebook integration for CoderPad allows you to utilize one of seven versions of this popular data science platform.
Each notebook will pre-load with different libraries, you can find more information on the specific libraries in Jupyter’s documentation.
To work with Jupyter Notebooks in CoderPad, you can either open a pad, and select one of the notebook versions from the drop down…
Or you can create a Jupyter-based question by selecting a version from the question wizard and editing the content as needed.
When you or your candidate open your Jupyter Notebook pad, you’ll be presented with a pad-embedded version that works just like it would out-of-the-box — you’ll have all the same functionality and features as the versions you’ve used outside of CoderPad Interview.
However, you’ll have the added benefit of CoderPad features — for example the ability to collaborate with a candidate over video, take your own private notes the candidate can’t see, and make use of Drawing mode.
✅ Playback is not yet available with Jupyter, but the notebook will still be available for review.
Notebook versions
Minimal notebook
This Pad is running a Jupyter instance, built off of the jupyter/minimal-notebook
Docker image provided by Jupyter Docker Stacks. Not much is provided out of the box with this image, but you can customize it to your needs by installing the packages you require.
SciPy notebook
This Pad is running a Jupyter instance, built off of the jupyter/scipy-notebook
Docker image provided by Jupyter Docker Stacks. This image includes popular packages from the scientific Python ecosystem:
- altair, beautifulsoup4, bokeh, bottleneck, cloudpickle, conda-forge::blas=*=openblas, cython, dask, dill, h5py, jupyterlab-git, matplotlib-base, numba, numexpr, openpyxl, pandas, patsy, protobuf, pytables, scikit-image, scikit-learn, scipy, seaborn, sqlalchemy, statsmodel, sympy, widgetsnbextension, xlrd packages.
- ipympl and ipywidgets for interactive visualizations and plots in Python notebooks.
- Facets for visualizing machine learning datasets.
R notebook
This Pad is running a Jupyter instance, built off of the jupyter/r-notebook
Docker image provided by Jupyter Docker Stacks. This image includes popular packages from the R ecosystem:
- The R interpreter and base environment.
- IRKernel to support R code in Jupyter notebooks.
- tidyverse packages from conda-forge.
- caret, crayon, devtools, forecast, hexbin, htmltools, htmlwidgets, nycflights13, randomforest,
rcurl, rmarkdown, rodbc, rsqlite, shiny, tidymodels, unixodbc packages from conda-forge.
TensorFlow notebook
This Pad is running a Jupyter instance, built off of the jupyter/tensorflow-notebook
Docker image provided by Jupyter Docker Stacks. This image includes popular packages from the scientific Python ecosystem, as well as the tensorflow machine learning library:
- altair, beautifulsoup4, bokeh, bottleneck, cloudpickle, conda-forge::blas=*=openblas, cython, dask, dill, h5py, jupyterlab-git, matplotlib-base, numba, numexpr, openpyxl, pandas, patsy, protobuf, pytables, scikit-image, scikit-learn, scipy, seaborn, sqlalchemy, statsmodel, sympy, widgetsnbextension, xlrd packages.
- ipympl and ipywidgets for interactive visualizations and plots in Python notebooks.
- Facets for visualizing machine learning datasets.
- tensorflow for creating machine learning models.
PyTorch
This pad is running a Jupyter instance, built off of the jupyter/pytorch-notebook
Docker image provided by Jupyter Docker Stacks. This image includes popular packages from the scientific Python ecosystem, as well as the pytorch machine learning library:
- altair, beautifulsoup4, bokeh, bottleneck, cloudpickle, conda-forge::blas=*=openblas, cython, dask, dill, h5py, jupyterlab-git, matplotlib-base, numba, numexpr, openpyxl, pandas, patsy, protobuf, pytables, scikit-image, scikit-learn, scipy, seaborn, sqlalchemy, statsmodel, sympy, widgetsnbextension, xlrd packages.
- ipympl and ipywidgets for interactive visualizations and plots in Python notebooks.
- Facets for visualizing machine learning datasets.
- pytorch for creating machine learning models.
Transformers
This pad is running a Jupyter instance, pre-installed with the Transformers Library and other popular NLP frameworks and scientific Python packages:
- tensorflow
- pytorch,
torchvision
, andtorchaudio
- jax,
jaxlib
, andoptax
- altair, beautifulsoup4, bokeh, bottleneck, cloudpickle, conda-forge::blas=*=openblas, cython, dask, dill, h5py, jupyterlab-git, matplotlib-base, numba, numexpr, openpyxl, pandas, patsy, protobuf, pytables, scikit-image, scikit-learn, scipy, seaborn, sqlalchemy, statsmodel, sympy, widgetsnbextension, xlrd packages.
- ipympl and ipywidgets for interactive visualizations and plots in Python notebooks.
- Facets for visualizing machine learning datasets.
PySpark
This Pad is running a Jupyter instance, built off of the jupyter/pyspark-notebook
Docker image provided by Jupyter Docker Stacks. This image includes popular packages from the scientific Python and Apache Spark ecosystems:
- Apache Spark with Hadoop binaries
- grpcio-status
- grpcio
- pyarrow
- altair, beautifulsoup4, bokeh, bottleneck, cloudpickle, conda-forge::blas=*=openblas, cython, dask, dill, h5py, jupyterlab-git, matplotlib-base, numba, numexpr, openpyxl, pandas, patsy, protobuf, pytables, scikit-image, scikit-learn, scipy, seaborn, sqlalchemy, statsmodel, sympy, widgetsnbextension, xlrd packages
- ipympl and ipywidgets for interactive visualizations and plots in Python notebooks
- Facets for visualizing machine learning datasets
Spark UI
In order to access the Spark Web UI for an active Spark session you can use the “Spark UI” button from the Launcher.
✅ The UI is only available during an active Spark session and takes a few seconds to start up after the start of a job execution.
If you would like access to the UI after your job has finished, we recommend putting blocking code at the end of your code block like input()
like so:
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName("Simple PySpark Example") \
.getOrCreate()
data = [("Alice", 34), ("Bob", 45), ("Catherine", 29)]
columns = ["Name", "Age"]
df = spark.createDataFrame(data, schema=columns)
df_with_age_plus_ten = df.withColumn("AgePlusTen", df["Age"] + 10)
df_with_age_plus_ten.show()
input() # block execution so that you can access the Spark UI
spark.stop()
Code language: Python (python)
Real Time Collaboration
We’ve included the jupyter-collaboration
extension, which allows for multiple users to edit and interact with a notebook at the same time. Note: currently, all users are anonymously named in Jupyter, but we hope to fix this soon!
Container Limits
The container running your application has a few limitations. Currently, we don’t limit your CPU usage, though this may change in future. In addition to CPU, we monitor the network bandwidth that is consumed, and limit you to 75mb for the duration of the container. Finally, we limit the amount of memory accessible to each container to 0.5 GB.
Are there any libraries or settings we missed? Feel free to email us with suggestions!