FRosner / spawncamping-dds

Data-Driven Spark allows quick data exploration based on Apache Spark.
Other
28 stars 15 forks source link

Data-Driven Spark Build Status Codacy Badge codecov.io

Description

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.

Usage

  1. Add spawncamping-dds jar to Spark classpath

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

    import de.frosner.dds.core.DDS._
    import de.frosner.dds.webui.server.SprayServer._
  3. Start the web server + user interface

    start()
  4. 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)
  5. 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.

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

Contribution

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.

Authors

Licensing

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