Show Menu
TOPICS×

JupyterLab user guide

JupyterLab is a web-based user interface for Project Jupyter and is tightly integrated into Adobe Experience Platform. It provides an interactive development environment for data scientists to work with Jupyter notebooks, code, and data.
This document provides an overview of JupyterLab and its features as well as instructions to perform common actions.

JupyterLab on Experience Platform

Experience Platform's JupyterLab integration is accompanied with architectural changes, design considerations, customized notebook extensions, pre-installed libraries, and an Adobe-themed interface.
The following list outlines some of the features that are unique to JupyterLab on Platform:
Feature
Description
Kernels
Kernels provide notebook and other JupyterLab front-ends the ability to execute and introspect code in different programming languages. Experience Platform provides additional kernels to support development in Python, R, PySpark, and Spark. See the kernels section for more details.
Data access
Access existing datasets directly from within JupyterLab with full support for read and write capabilities.
Platform service integration
Built-in integrations allows you to utilize other Platform services directly from within JupyterLab. A complete list of supported integrations is provided in the section on Integration with other Platform services .
Authentication
In addition to security.html JupyterLab's built-in security model, every interaction between your application and Experience Platform, including Platform service-to-service communication is encrypted and authenticated through the auth-methods.html Adobe Identity Management System (IMS).
Development libraries
In Experience Platform, JupyterLab provides pre-installed libraries for Python, R, and PySpark. See the appendix for a complete list of supported libraries.
Library controller
When the the pre-installed libraries are lacking for your needs, additional libraries can be installed for Python and R, and are temporarily stored in isolated containers to maintain the integrity of Platform and keep your data safe. See the kernels section for more details.
Additional libraries are only available for the session in which they were installed. You must reinstall any additional libraries you require when starting new sessions.

Integration with other Platform services

Standardization and interoperability are key concepts behind Experience Platform. The integration of JupyterLab on Platform as an embedded IDE allows it to interact with other Platform services, enabling you to utilize Platform to its full potential. The following Platform services are available in JupyterLab:
  • Catalog Service: Access and explore datasets with read and write functionalities.
  • Query Service: Access and explore datasets using SQL, providing lower data access overheads when dealing with large amounts of data.
  • Sensei ML Framework: Model development with the ability to train and score data, as well as recipe creation with a single click.
  • Experience Data Model (XDM): Standardization and interoperability are key concepts behind Adobe Experience Platform. Experience Data Model (XDM) , driven by Adobe, is an effort to standardize customer experience data and define schemas for customer experience management.
Some Platform service integrations on JupyterLab are limited to specific kernels. Refer to the section on kernels for more details.

Key features and common operations

Information regarding key features of JupyterLab and instructions on performing common operations are provided in the sections below:

Access JupyterLab

In Adobe Experience Platform , select Notebooks from the left navigation column. Allow some time for JupyterLab to fully initialize.

JupyterLab interface

The JupyterLab interface consists of a menu bar, a collapsible left sidebar, and the main work area containing tabs of documents and activities.
Menu bar
The menu bar at the top of the interface has top-level menus that expose actions available in JupyterLab with their keyboard shortcuts:
  • File: Actions related to files and directories
  • Edit: Actions related to editing documents and other activities
  • View: Actions that alter the appearance of JupyterLab
  • Run: Actions for running code in different activities such as notebooks and code consoles
  • Kernel: Actions for managing kernels
  • Tabs: A list of open documents and activities
  • Settings: Common settings and an advanced settings editor
  • Help: A list of JupyterLab and kernel help links
Left sidebar
The left sidebar contains clickable tabs that provides access to the following features:
  • File browser: A list of saved notebook documents and directories
  • Data explorer: Browse, access, and explore datasets and schemas
  • Running kernels and terminals: A list of active kernel and terminal sessions with the ability to terminate
  • Commands: A list of useful commands
  • Cell inspector: A cell editor that provides access to tools and metadata useful for setting up a notebook for presentation purposes
  • tabs: A list of open tabs
Click on a tab to expose its features, or click on an expanded tab to collapse the left sidebar as demonstrated below:
Main work area
The main work area in JupyterLab enables you to arrange documents and other activities into panels of tabs that can be resized or subdivided. Drag a tab to the center of a tab panel to migrate the tab. Divide a panel by dragging a tab to the left, right, top, or bottom of the panel:

Code cells

Code cells are the primary content of notebooks. They contain source code in the language of the notebook's associated kernel and the output as a result of executing the code cell. An execution count is displayed to the right of every code cell which represents its order of execution.
Common cell actions are described below:
  • Add a cell: Click the plus symbol ( + ) from the notebook menu to add an empty cell. New cells are placed under the cell that is currently being interacted with, or at the end of the notebook if no particular cell is in focus.
  • Move a cell: Place your cursor to the right of the cell you wish to move, then click and drag the cell to a new location. Additionally, moving a cell from one notebook to another replicates the cell along with its contents.
  • Execute a cell: Click on the body of the cell you wish to execute and then click the play icon ( ) from the notebook menu. An asterisk ( * ) is displayed in the cell's execution counter when the kernel is processing the execution, and is replaced with an integer upon completion.
  • Delete a cell: Click on the body of the cell you wish to delete and then click the scissor icon.

Kernels

Notebook kernels are the language-specific computing engines for processing notebook cells. In addition to Python, JupyterLab provides additional language support in R, PySpark, and Spark (Scala). When you open a notebook document, the associated kernel is launched. When a notebook cell is executed, the kernel performs the computation and produces results which may consume significant CPU and memory resources. Note that allocated memory is not freed until the kernel is shut-down.
Certain features and functionalities are limited to particular kernels as described in the table below:
Kernel
Library installation support
Platform integrations
Python
Yes
  • Sensei ML Framework
  • Catalog Service
  • Query Service
R
Yes
  • Sensei ML Framework
  • Catalog Service
Scala
No
  • Sensei ML Framework
  • Catalog Service

Kernel sessions

Each active notebook or activity on JupyterLab utilizes a kernel session. All active sessions can be found by expanding the Running terminals and kernels tab from the left sidebar. The type and state of the kernel for a notebook can be identified by observing the top right of the notebook interface. In the diagram below, the notebook's associated kernel is Python 3 and the its current state is represented by a grey circle to the right. A hollow circle implies an idling kernel and a solid circle implies a busy kernel.
If the kernel is shut-down or inactive for a prolonged period, then No Kernel! with a solid circle is shown. Activate a kernel by clicking the kernel status and selecting the appropriate kernel type as demonstrated below:

Launcher

The customized Launcher provides you with useful notebook templates for their supported kernels to help you kickstart your task, including:
Template
Description
Blank
An empty notebook file.
Starter
A pre-filled notebook demonstrating data exploration using sample data.
Retail Sales
A pre-filled notebook featuring the retail sales recipe using sample data.
Recipe Builder
A notebook template for creating a recipe in JupyterLab. It is pre-filled with code and commentary that demonstrates and describes the recipe creation process. Refer to the notebook to recipe tutorial for a detailed walkthrough.
Query Service
A pre-filled notebook demonstrating the usage of Query Service directly in JupyterLab with provided sample workflows that analyzes data at scale.
XDM Events
A pre-filled notebook demonstrating data exploration on postvalue Experience Event data, focusing on features common across the data structure.
XDM Queries
A pre-filled notebook demonstrating sample business queries on Experience Event data.
Aggregation
A pre-filled notebook demonstrating sample workflows to aggregate large amounts of data into smaller, manageable chunks.
Clustering
A pre-filled notebook demonstrating the end-to-end machine learning modeling process using clustering algorithms.
Some notebook templates are limited to certain kernels. Template availability for each kernel is mapped in the following table:
Blank Starter Retail Sales Recipe Builder [!DNL Query Service] XDM Events XDM Queries Aggregation Clustering
[!DNL Python] yes yes yes yes yes yes no no no
R yes yes yes no no no no no no
PySpark 3 ([!DNL Spark] 2.4) no yes no no no no yes yes no
Scala yes yes no no no no no no yes
To open a new Launcher , click File > New Launcher . Alternatively, expand the File browser from the left sidebar and click the plus symbol ( + ):

GPU and memory server configuration in Python/R

In JupyterLab select the gear icon in the top-right corner to open Notebook server configuration . You can toggle GPU on and allocate the amount of memory you need by using the slider. The amount of memory you can allocate depends on how much your organization has provisioned. Select Update configs to save.
Only one GPU is provisioned per organization for Notebooks. If the GPU is in use, you need to wait for the user that has currently reserved the GPU to release it. This can be done by logging out or leaving the GPU in an idle state for four or more hours.

Next steps

To learn more about each of the supported notebooks and how to use them, visit the Jupyterlab notebooks data access developer guide. This guide focuses on how to use JupyterLab notebooks to access your data including reading, writing, and querying data. The data access guide also contains information on the maximum amount of data that can be read by each supported notebook.

Supported libraries

Python / R

Library
Version
notebook
6.0.0
requests
2.22.0
plotly
4.0.0
folium
0.10.0
ipywidgets
7.5.1
bokeh
1.3.1
gensim
3.7.3
ipyparallel
0.5.2
jq
1.6
keras
2.2.4
nltk
3.2.5
pandas
0.22.0
pandasql
0.7.3
pillow
6.0.0
scikit-image
0.15.0
scikit-learn
0.21.3
scipy
1.3.0
scrapy
1.3.0
seaborn
0.9.0
statsmodels
0.10.1
elastic
5.1.0.17
ggplot
0.11.5
py-xgboost
0.90
opencv
3.4.1
pyspark
2.4.3
pytorch
1.0.1
wxpython
4.0.6
colorlover
0.3.0
geopandas
0.5.1
pyshp
2.1.0
shapely
1.6.4
rpy2
2.9.4
r-essentials
3.6
r-arules
1.6_3
r-fpc
2.2_3
r-e1071
1.7_2
r-gam
1.16.1
r-gbm
2.1.5
r-ggthemes
4.2.0
r-ggvis
0.4.4
r-igraph
1.2.4.1
r-leaps
3.0
r-manipulate
1.0.1
r-rocr
1.0_7
r-rmysql
0.10.17
r-rodbc
1.3_15
r-rsqlite
2.1.2
r-rstan
2.19.2
r-sqldf
0.4_11
r-survival
2.44_1.1
r-zoo
1.8_6
r-stringdist
0.9.5.2
r-quadprog
1.5_7
r-rjson
0.2.20
r-forecast
8.7
r-rsolnp
1.16
r-reticulate
1.12
r-mlr
2.14.0
r-viridis
0.5.1
r-corrplot
0.84
r-fnn
1.1.3
r-lubridate
1.7.4
r-randomforest
4.6_14
r-tidyverse
1.2.1
r-tree
1.0_39
pymongo
3.8.0
pyarrow
0.14.1
boto3
1.9.199
ipyvolume
0.5.2
fastparquet
0.3.2
python-snappy
0.5.4
ipywebrtc
0.5.0
jupyter_client
5.3.1
wordcloud
1.5.0
graphviz
2.40.1
python-graphviz
0.11.1
azure-storage
0.36.0
jupyterlab
1.0.4
pandas_ml
0.6.1
tensorflow-gpu
1.14.0
nodejs
12.3.0
mock
3.0.5
ipympl
0.3.3
fonts-anacond
1.0
psycopg2
2.8.3
nose
1.3.7
autovizwidget
0.12.9
altair
3.1.0
vega_datasets
0.7.0
papermill
1.0.1
sql_magic
0.0.4
iso3166
1.0
nbimporter
0.3.1

PySpark

Library
Version
requests
2.18.4
gensim
2.3.0
keras
2.0.6
nltk
3.2.4
pandas
0.20.1
pandasql
0.7.3
pillow
5.3.0
scikit-image
0.13.0
scikit-learn
0.19.0
scipy
0.19.1
scrapy
1.3.3
statsmodels
0.8.0
elastic
4.0.30.44
py-xgboost
0.60
opencv
3.1.0
pyarrow
0.8.0
boto3
1.5.18
azure-storage-blob
1.4.0
python
3.6.7
mkl-rt
11.1