datafusion-ballista icon indicating copy to clipboard operation
datafusion-ballista copied to clipboard

Add support for Jupyter notebooks in Ballista

Open andygrove opened this issue 3 years ago • 4 comments

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

Jupyter notebooks are a popular tool for interacting with data science and "Big Data" systems and it would be nice if we could add support for this in Ballista.

Describe the solution you'd like

It probably makes sense to support writing Python code in the notebook, so this would depend on having Python bindings available for DataFusion & Ballista (see https://pypi.org/project/datafusion/).

Describe alternatives you've considered None

Additional context None

andygrove avatar Apr 24 '21 16:04 andygrove

I've investigated Python and JavaScript notebooks for Ballista, and think that Rust notebooks would be the low-hanging fruit and natural starting point:

https://github.com/google/evcxr/blob/main/evcxr_jupyter/README.md

EvCxR supports one-liner crate imports, and that's how the Ballista Client could be integrated, once apache/arrow-datafusion#509 and apache/arrow-datafusion#234 are addressed.

Since EvCxR already exists, maybe this issue should be renamed to focus more specifically on a Python-specific Jupyter kernel.

drauschenbach avatar Jun 05 '21 14:06 drauschenbach

An alternative is to add support to Ballista to the Python bindings. I am not sure about the benefit of Rust itself in the notebook; in the notebook people usually favor interpreted languages, that do not have the compiling overhead.

An interface common for DataFusion and Ballista context, e.g. via a trait, and use Box<dyn Context> on the Python binding to use one or the other should be enough?

jorgecarleitao avatar Jun 07 '21 22:06 jorgecarleitao

FYI, databend has supportted https://databend.rs/doc/integrations/gui-tool/jupyter#what-is-jupyter-notebook :)

xudong963 avatar Apr 23 '22 14:04 xudong963

Related to #58

nl5887 avatar Jun 06 '22 07:06 nl5887