Seahorse is an open-source visual framework allowing you to create Apache Spark applications in a fast, simple and interactive way.
Seahorse is distributed under the Apache 2.0 License.
Read more about Seahorse on the documentation page: seahorse.deepsense.ai.
Prerequisites:
- docker 1.30
- docker-compose 1.9
- JDK 8
- sbt 0.13
- python 2.7
- PyYAML
- npm 4.6 (with npmrc)
- jekyll 3.2
- pygments.rb
- jekyll-sass-converter
- jekyll-watch
- PhantomJS
Run
./build/build_all.sh
This will build all the needed docker images and create a docker-compose.yml
file.
You can now run it using docker-compose up
. Seahorse will start at http://localhost:33321.
A good place to start using Seahorse is the basic examples section of the documentation.
Note that in order to contribute to Seahorse you have to sign the Contributor License Agreement.
Initialize the submodules before running the tests:
git submodule init
git submodule update
Backend tests:
./build/build_and_run_tests.sh
Frontend tests:
./frontend/run_unit_tests.sh
End-to-end integration tests:
./build/e2e_tests.sh -a
In order for Seahorse to compile and run correctly on Mac OS, you need to increase memory for Docker engine to at least 6GB.
Some of our Python scripts used by devs support bash autocompletion using argcomplete.
pip install argcomplete
activate-global-python-argcomplete --user
See this for global completion support.
Note, that bash 4.2 is required. Installation instruction for Mac users
After the bash upgrade, you may have to rename .bash_profile
to .bashrc
. And maybe add /usr/local/bin
to $PATH.
Also, check if you're actually running the new bash with echo $BASH_VERSION
- your terminal might still be using the old one.
To compile and test SDK operations on local repository, you can use seahorse-sdk-example
submodule
git submodule init
git submodule update
./build/prepare-sdk-dependencies.sh
Now it will compile and test against the local Seahorse repository:
cd seahorse-sdk-example
sbt test
Seahorse was originally created at deepsense.ai. Technical support and customization options are available upon contact.