Skip to content
Data-Driven Spark allows quick data exploration based on Apache Spark.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Data-Driven Spark Build Status Codacy Badge


This library provides a comprehensible and simple interface for quick data exploration based on Apache Spark and D3.js/SVG. The target audience is data scientists who miss functions like summary() and plot() from R when working on the cluster with the Spark REPL. It does not offer a fully flexible plotting mechanism like ggplot2 but focuses on giving you quick insights into your data.


  1. Add spawncamping-dds jar to Spark classpath

    ./bin/spark-shell --jars spawncamping-dds-<ddsVersion>_<scalaVersion>.jar
  2. Import core functions and web UI

  3. Start the web server + user interface

  4. Explore your data

    // load example data set
    val sql = new org.apache.spark.sql.SQLContext(sc)
    val golf =
    // look at a sample of your data set
    // compute column statistics
    // visualize column dependencies
  5. Stop the server once you are done


See the User Guide for a detailed explanation of the provided functionality. To achieve the best user experience for the web UI, we recommend using Google Chrome.

Get Data-Driven Spark

You can either grab the latest release artifact, use the most recent SNAPSHOT or build from source (sbt build). Data-Driven Spark (DDS) 4.x.y is currently developed and built against Spark 1.5. It can be cross built against Scala version 2.10 and 2.11, depending on which version was used to build your Spark. For older versions of Spark, please refer to the following table:

DDS Versions Spark Versions
4.x.y 1.5.x
3.x.y 1.4.x
2.x.y 1.3.x
1.x.y 1.2.x


Any contribution, e.g. in form of feature requests, comments, code reviews, pull requests are very welcome. Pull requests will be reviewed before they are merged and it makes sense to coordinate with one of the main committers before starting to work on something big.

Please follow the general code style convention of Scala. It is advised to stick to the formatting / code style of the surrounding code when making changes to existing files. Reformatting should be done in separate commits.

All (most of the) code committed should be covered by some automated unit tests. All existing tests need to pass before committing changes.

Please view the Developer Guide for additional information about extending DDS.



This project is licensed under the Apache License Version 2.0. For details please see the file called LICENSE.

Included Libraries

Library License
spray Apache 2
scalaj-http Apache 2
D3.js Custom
C3.js MIT
Parallel Coordinates Custom
jQuery Custom (MITish)
SlickGrid MIT
Chroma.js BSD
Underscore.js MIT
Bootstrap CSS MIT
Scalaz Custom
You can’t perform that action at this time.