Skip to content

Use Apache Zeppelin

Sedona provides a Helium visualization plugin tailored for Apache Zeppelin. This finally bridges the gap between Sedona and Zeppelin. Please read Install Sedona-Zeppelin to learn how to install this plugin in Zeppelin.

Sedona-Zeppelin equips two approaches to visualize spatial data in Zeppelin. The first approach uses Zeppelin to plot all spatial objects on the map. The second one leverages SedonaViz to generate map images and overlay them on maps.

Small-scale without SedonaViz


Zeppelin is just a front-end visualization framework. This approach is not scalable and will fail at large-scale geospatial data. Please scroll down to read SedonaViz solution.

You can use Apache Zeppelin to plot a small number of spatial objects, such as 1000 points. Assume you already have a Spatial DataFrame, you need to convert the geometry column to WKT string column use the following command in your Zeppelin Spark notebook Scala paragraph:

    |SELECT ST_AsText(shape) as geom
    |FROM pointtable

Then create an SQL paragraph to fetch the data

FROM wktpoint

Select the geometry column to visualize:

Large-scale with SedonaViz

SedonaViz is a distributed visualization system that allows you to visualize big spatial data at scale. Please read How to use SedonaViz.

You can use Sedona-Zeppelin to ask Zeppelin to overlay SedonaViz images on a map background. This way, you can easily visualize 1 billion spatial objects or more (depends on your cluster size).

First, encode images of SedonaViz DataFrame in Zeppelin Spark notebook Scala paragraph,

    |SELECT ST_EncodeImage(image) AS image, (SELECT ST_AsText(bound) FROM boundtable) AS boundary
    |FROM images

Then create an SQL paragraph to fetch the data

SELECT *, 'I am the map center!'
FROM images

Select the image and its geospatial boundary:

Zeppelin Spark notebook demo

We provide a full Zeppelin Spark notebook which demonstrates all functions. Please download Sedona-Zeppelin notebook template and test data - arealm.csv.

You need to use Zeppelin to import this notebook JSON file and modify the input data path in the notebook.