Jupyter with SAS Analytics Pro (cloud-native)

Jupyter with SAS Analytics Pro (cloud-native)

The new containerised version of SAS Analytics Pro from the SAS Institute opens up a world of possibilities for leveraging third-party technologies to enhance what is already a pretty powerful Data and Analytics platform.

One of these technologies that has really taken off and helped Data Scientists take advantage of a unified programming experience regardless of the language used is Project Jupyter. A core feature of Project Jupyter is known as a Notebook, and this is explained on the Jupyter site as “…an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text“. This not only makes it an easy, pleasant experience to work in but also facilitates the ability to present complex processes in a nice visual manner to non-programmers – kind of like reading through a notebook 🙂

example notebook of Lorenz differential equations

Jupyter can also be used for SAS programming, and as part of our SAS Analytics Pro Launcher (available at https://github.com/Selerity/sas-analytics-pro/releases) you can enable this functionality with a simple change to the settings file!

Enabling JupyterLab in the Selerity Launcher for SAS Analytics Pro

If you have followed our previous post, Cloud-native SAS Analytics Pro – for your Desktop!, you will have a functioning SAS Analytics Pro container environment that leverages our custom Launcher (available on GitHub).

To enable Jupyter in your environment, open up the apro.settings file in your $deploy directory (the location where you unzipped the Selerity Launcher code) and set JUPYTERLAB to true.

# Enable Jupyter Lab?
JUPYTERLAB=true

Stop your SAS Analytics Pro container if it is currently running with the following command:

docker stop sas-analytics-pro

Now start your environment back up by running the launchapro script again. When you launch your environment with JUPYTERLAB=true the following things happen behind the scenes (all transparent to the user):

  1. A virtual Python 3.9 environment is created in /python (the python directory in the repository)
  2. The bits-and-pieces required to run JupyterLab and Jupyter Notebooks are installed to /python
  3. The SAS Kernel for Jupyter is installed to /python and configured to use SAS in your SAS Analytics Pro container
  4. Jupyter Lab is started up after SAS Studio is started

Depending on the speed of your internet connection it could take up to 15 minutes for all this to happen, but as long as you don’t delete the python directory all subsequent startups should be just as quick as before. This is what the startup process looks like with JupyterLab enabled:

#############################################
#    SAS Analytics Pro Personal Launcher    #
#-------------------------------------------#
# S = SAS Studio has started                #
# J = Jupyter Lab has started               #
#############################################
.....S..J
Password=aS7yiXxtA0
To stop your SAS Analytics Pro instance, use "docker stop sas-analytics-pro"

Using Jupyter

Open your browser to http://localhost:8888 and enter your generated password. You will then be presented with the JupyterLab main interface:

You can click on the SAS icons in the Launcher to create a new Notebook using the SAS Kernel, and then start writing your SAS code. Click the play button to submit your code:

Hosted Option

If you would prefer to just login-and-start-using Jupyter with SAS Analytics Pro, our Selerity Analytics Desktop offering provides SAS Analytics Pro as-a-service (including Jupyter), which can also be integrated into your existing IT infrastructure if required. This allows you to leverage you existing security, login credentials and code assets without needing to maintain your own SAS infrastructure. Contact us if you would like to learn more!

Michael

Click Here to Leave a Comment Below

Leave a Comment:

Discover more from Selerity

Subscribe now to keep reading and get access to the full archive.

Continue reading