github 1842 Asset 1248

BeakerX is a collection of kernels and extensions to the Jupyter interactive computing environment. It provides JVM support, Spark cluster support, polyglot programming, interactive plots, tables, forms, publishing, and more. BeakerX supports:

  • Groovy, Scala, Clojure, Kotlin, Java, and SQL, including many magics;
  • Widgets for time-series plotting, tables, forms, and more (there are Python and JavaScript APIs in addition to the JVM languages);
  • Polyglot magics and autotranslation, allowing you to access multiple languages in the same noteobook, and seamlessly communicate between them;
  • Apache Spark integration including GUI configuration, status, progress, interrupt, and tables;
  • One-click publication with interactive plots and tables, and
  • Jupyter Lab.

BeakerX is available via conda, pip, and docker. Or try it live online with Binder.

Interactive Plotting

image title

All of BeakerX’s JVM languages plus Python and JavaScript have APIs for interactive time-series, scatter plots, histograms, heatmaps, and treemaps. The widgets remain interactive in both notebooks saved to disk, and notebooks published to the web. They include unique features for handling many points, nanosecond resolution, zooming, and exporting.


Interactive Tables

BeakerX’s table widget automatically recognizes pandas dataframes and allows you to search, sort, drag, filter, format, select, graph, hide, pin, and export to CSV or clipboard. This makes connecting to spreadsheets quick and easy.

image title


Spark Integration

image title

BeakerX has a Spark magic with GUIs for configuration, status, progress, and interrupt of Spark jobs. You can either use the GUI or create your own SparkSession with code. The GUI has links to documentation and the standard Spark web UI.


Publication

With a single click, convert the current notebook’s contents including any interactive widgets to a Github gist. A new tab opens nbviewer on it, including the active widgets. This is a link you can send anyone.

image title

BeakerX is the successor to Beaker Notebook. After seeing the demo of Jupyter Lab at SciPy 2016 we realized that Jupyter had become extensible enough that much of what made Beaker special could be done in the Jupyter ecosystem.

The result of joining forces with Jupyter is a more powerful tool for our users, and a larger community of developers and users that continues to grow. Jupyter users benefit by getting access to our work as well. And we benefit by leveraging shared infrastructure so we can focus on adding value.

It has taken about a year to port Beaker’s key features to become extensions to Jupyter, and we are very excited to finish this transition and release the results with a new name “BeakerX” that represents both our history and how large a change this is.

What about classic Beaker’s polyglot and autotranslation features?

Beaker Notebook (before BeakerX) is known for supporting polyglot programming, and for autotranslating data between languages. These features have been the most difficult to fit into Jupyter.

BeakerX has polyglot magics to allow running multiple languages in the same notebook, and it supports bidirectional autotranslation as well, however its implementation is not yet as complete as the original.

Can I install BeakerX with pip instead of conda?

Yes, see the instructions. Our documentation focuses on conda for simplicity.

Can I use BeakerX on win32?

Win32 is not supported because OpenJDK on Conda Forge doesn’t support it. Win64 is recommended. But if you install a JDK on your own, it should work.

Can I be informed of new releases?

Yes, please sign up on our email list or follow us on Twitter.

Who is responsible for BeakerX?

It is developed by Two Sigma Open Source. Yes we are hiring.

Tutorials and Examples

Most of the documentation consists of notebooks that show BeakerX’s kernels and widgets in action.

Cheatsheet

Here is a cheatsheet for a quick overview of BeakerX functionalities.

Installation with Conda

We recommend conda to install Jupyter and BeakerX, and to manage your Python environments. BeakerX works with Python 3.4 and above. Conda forge hosts the lastest version.

conda create -y -n beakerx 'python>=3'
source activate beakerx
conda config --env --add pinned_packages 'openjdk>8.0.121'
conda install -y -c conda-forge ipywidgets beakerx

Installation for Jupyter Lab

You can try it as follows. Note that installing Lab extensions requires npm.

conda create -y -n labx 'python>=3'
source activate labx
conda config --env --add pinned_packages 'openjdk>8.0.121'
conda install -y -c conda-forge jupyterlab beakerx
jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter labextension install beakerx-jupyterlab

Upgrading

If you have an environment with a previous version of BeakerX, to upgrade to the latest version use:

conda update -c conda-forge beakerx

Running BeakerX

Start it with

jupyter notebook

or just

beakerx

and then use the “New” menu to create a notebook in the language of your choice.

Installation with Pip

You can also install BeakerX with pip.

pip install beakerx
beakerx install

Uninstallation with Pip

beakerx uninstall
pip uninstall beakerx

Running with Docker

Docker is the most reliable way get and run Jupyter and BeakerX since it’s completely self contained.

docker run -p 8888:8888 beakerx/beakerx

Beaker Notebooks Converter

You can convert classic Beaker Notebook files (with file suffix “.bkr”) to Jupyter Notebooks (with file suffix “.ipynb”) as follows:

beakerx bkr2ipynb *.bkr

Building and Contributing

We welcome developers to extend and improve BeakerX in ways that can benefit everyone. Please see the README and CONTRIBUTING files for more information.