Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Apache Spark
  3. sparkle

sparkle

BSD-3-ClauseHaskell

A library for writing Apache Spark applications in Haskell, enabling resilient analytics that scale to thousands of nodes.

GitHubGitHub
449 stars27 forks0 contributors

What is sparkle?

Sparkle is a library that enables developers to write Apache Spark applications in Haskell, compiling them into self-contained JAR files for execution on Spark clusters. It solves the problem of applying Haskell's strong typing and functional paradigms to large-scale, distributed data processing tasks typically handled by Spark.

Target Audience

Haskell developers and data engineers who need to build scalable, type-safe analytics applications on Apache Spark, particularly those already invested in the Haskell ecosystem.

Value Proposition

Developers choose Sparkle to leverage Haskell's expressiveness and reliability in big data contexts, avoiding the limitations of Java/Scala while still utilizing Spark's proven distributed computing framework.

Overview

Haskell on Apache Spark.

Use Cases

Best For

  • Building type-safe data processing pipelines on Apache Spark
  • Migrating existing Haskell analytics code to a distributed Spark environment
  • Developing resilient analytics applications that require strong guarantees
  • Integrating Haskell libraries with big data workflows
  • Creating self-contained Spark applications deployable as JAR files
  • Running Haskell code on large-scale clusters via Spark's execution engine

Not Ideal For

  • Teams needing rapid prototyping with Spark's native Scala or Python APIs, as Sparkle adds Haskell compilation overhead
  • Organizations without Haskell expertise or infrastructure, given the deep knowledge required for Haskell and tools like Nix/Bazel
  • Projects relying heavily on Spark's machine learning libraries or ecosystem tools not directly supported in Haskell
  • Environments where JNI-based deployment is problematic due to security or compatibility constraints

Pros & Cons

Pros

Type-Safe Spark Applications

Enables writing Spark jobs with Haskell's strong type system, reducing runtime errors and improving code reliability, as emphasized in the project's philosophy for resilient analytics.

Self-Contained JAR Deployment

Compiles Haskell code into deployable JAR files that embed native object code and dependencies, simplifying distribution across Spark clusters, as described in the 'How it works' section.

Inline Java Integration

Supports embedding Java code fragments directly in Haskell using the `inline-java` library, facilitating interoperability with Java-based Spark APIs and easing transitions.

Scalable Distributed Execution

Leverages Spark's framework to scale applications to thousands of nodes, making it suitable for large-scale data processing on local or cluster deployments.

Cons

Complex Build Setup

Requires Nix, Bazel, and specific configurations like setting CLASSPATH and JNI paths, making initial setup and maintenance challenging, as detailed in the build instructions for Linux and other platforms.

JNI-Related Runtime Issues

Prone to problems like ClassNotFoundException and UnsatisfiedLinkError, especially in multi-threaded environments, necessitating error handling as noted in the troubleshooting section.

Limited Ecosystem Support

Has a smaller community and fewer resources compared to Scala or Python Spark APIs, which can hinder development and troubleshooting, evident from niche adoption and specific workarounds needed.

Frequently Asked Questions

Quick Stats

Stars449
Forks27
Contributors0
Open Issues16
Last commit1 year ago
CreatedSince 2015

Tags

#haskell#apache-spark#functional-programming#spark#jni#big-data#data-processing#scalability#distributed-computing#analytics

Built With

N
Nix
B
Bazel
G
GHC
H
Haskell
J
JNI
A
Apache Spark
J
Java
D
Docker

Included in

Apache Spark1.9k
Auto-fetched 9 hours ago

Related Projects

.NET for Apache Spark.NET for Apache Spark

.NET for Apache® Spark™ makes Apache Spark™ easily accessible to .NET developers.

Stars2,096
Forks333
Last commit22 hours ago
sparklyrsparklyr

R interface for Apache Spark

Stars971
Forks310
Last commit2 months ago
Kotlin for Apache SparkKotlin for Apache Spark

This projects gives Kotlin bindings and several extensions for Apache Spark. We are looking to have this as a part of Apache Spark 3.x

Stars481
Forks37
Last commit2 months ago
spark-connect-gospark-connect-go

Apache Spark Connect Client for Golang

Stars251
Forks53
Last commit3 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub