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.
-
Add spawncamping-dds jar to Spark classpath
./bin/spark-shell --jars spawncamping-dds-<ddsVersion>_<scalaVersion>.jar
-
Import core functions and web UI
import de.frosner.dds.core.DDS._ import de.frosner.dds.webui.server.SprayServer._
-
Start the web server + user interface
start()
-
Explore your data
// load example data set val sql = new org.apache.spark.sql.SQLContext(sc) val golf = de.frosner.dds.datasets.golf(sql) // look at a sample of your data set show(golf) // compute column statistics summarize(golf) // visualize column dependencies mutualInformation(golf)
-
Stop the server once you are done
stop()
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.
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.
- Frank Rosner (Creator)
- Aleksandr Sorokoumov (Contributor)
- Rick Moritz (Contributor)
- Milos Krstajic (Contributor)
- Z. Chen (Contributor)
- Basil Komboz (Contributor)
This project is licensed under the Apache License Version 2.0. For details please see the file called LICENSE.
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 |