Metadata-Version: 1.1
Name: spylon-kernel
Version: 0.2.1
Summary: Jupyter metakernel for apache spark and scala
Home-page: http://github.com/maxpoint/spylon-kernel
Author: Marius van Niekerk
Author-email: marius.v.niekerk+spylon@gmail.com
License: BSD 3-clause
Description: spylon-kernel

        =============

        

        |Build Status| |codecov|

        

        A Scala `Jupyter

        kernel <http://jupyter.readthedocs.io/en/latest/projects/kernels.html>`__

        that uses `metakernel <https://github.com/Calysto/metakernel>`__ in

        combination with `py4j <https://www.py4j.org/>`__.

        

        Prerequisites

        -------------

        

        -  Apache Spark 2.1 compiled for Scala 2.11

        -  Jupyter Notebook

        -  Python 3.5

        

        Note: `Spark 2.1.1+ will have support for Python

        3.6 <https://issues.apache.org/jira/browse/SPARK-19019>`__

        

        Install

        -------

        

        You can install the spylon-kernel package using ``pip`` or ``conda``.

        

        .. code:: bash

        

            pip install spylon-kernel

            # or

            conda install -c conda-forge spylon-kernel

        

        Using it as a Scala Kernel

        --------------------------

        

        You can use spylon-kernel as Scala kernel for Jupyter Notebook. Do this

        when you want to work with Spark in Scala with a bit of Python code

        mixed in.

        

        Create a kernel spec for Jupyter notebook by running the following

        command:

        

        .. code:: bash

        

            python -m spylon_kernel install

        

        Launch ``jupyter notebook`` and you should see a ``spylon-kernel`` as an

        option in the *New* dropdown menu.

        

        See `the basic example notebook <./examples/basic_example.ipynb>`__ for

        information about how to intiialize a Spark session and use it both in

        Scala and Python.

        

        Using it as an IPython Magic

        ----------------------------

        

        You can also use spylon-kernel as a magic in an IPython notebook. Do

        this when you want to mix a little bit of Scala into your primarily

        Python notebook.

        

        .. code:: python

        

            from spylon_kernel import register_ipython_magics

            register_ipython_magics()

        

        .. code:: scala

        

            %%scala

            val x = 8

            x

        

        Using it as a Library

        ---------------------

        

        Finally, you can use spylon-kernel as a Python library. Do this when you

        want to evaluate a string of Scala code in a Python script or shell.

        

        .. code:: python

        

            from spylon_kernel import get_scala_interpreter

        

            interp = get_scala_interpreter()

        

            # Evaluate the result of a scala code block.

            interp.interpret("""

                val x = 8

                x

            """)

        

            interp.last_result()

        

        Release Process

        ===============

        

        Push a tag and submit a source dist to PyPI.

        

        ::

        

            git commit -m 'REL: 0.2.1' --allow-empty

            git tag -a 0.2.1 # and enter the same message as the commit

            git push origin master # or send a PR

        

            # if everything builds / tests cleanly, release to pypi

            make release

        

        Then update https://github.com/conda-forge/spylon-kernel-feedstock.

        

        .. |Build Status| image:: https://travis-ci.org/maxpoint/spylon-kernel.svg?branch=master

           :target: https://travis-ci.org/maxpoint/spylon-kernel

        .. |codecov| image:: https://codecov.io/gh/maxpoint/spylon-kernel/branch/master/graph/badge.svg

           :target: https://codecov.io/gh/maxpoint/spylon-kernel

        
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
