Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Apache Spark
  3. neo4j-spark-connector

neo4j-spark-connector

Apache-2.0Scala5.5.0

A bi-directional connector enabling Apache Spark to read from and write to Neo4j graph databases using Spark DataSource APIs.

Visit WebsiteGitHubGitHub
321 stars119 forks0 contributors

What is neo4j-spark-connector?

Neo4j Connector for Apache Spark is an open-source library that enables bi-directional data transfer between Apache Spark and Neo4j graph databases. It allows users to read graph data from Neo4j into Spark DataFrames for distributed processing and write processed results back to Neo4j. This solves the problem of integrating graph database operations with large-scale data analytics pipelines.

Target Audience

Data engineers, data scientists, and developers working with both Apache Spark for big data processing and Neo4j for graph data storage, particularly those building ETL pipelines or performing graph analytics at scale.

Value Proposition

Developers choose this connector because it provides a standardized, efficient way to integrate Neo4j with Spark's ecosystem using the DataSource API, eliminating the need for custom integration code. It supports multiple Spark versions and Scala variants, ensuring compatibility with existing Spark deployments.

Overview

Neo4j Connector for Apache Spark, which provides bi-directional read/write access to Neo4j from Spark, using the Spark DataSource APIs

Use Cases

Best For

  • Performing large-scale graph analytics using Spark's distributed computing capabilities
  • Building ETL pipelines that move data between Neo4j and Spark DataFrames
  • Integrating Neo4j graph data with machine learning workflows in Spark MLlib
  • Migrating or syncing data between Neo4j and other data stores via Spark
  • Running complex graph queries on Neo4j data using Spark SQL
  • Developing data applications that require both graph database and batch processing capabilities

Not Ideal For

  • Real-time applications requiring low-latency graph queries without batch processing overhead
  • Small projects where Neo4j's native Cypher queries suffice and Spark adds unnecessary complexity
  • Teams using non-JVM languages like Python exclusively without PySpark or heavy Scala/Java dependencies
  • Environments with strict dependency management that conflict with specific Spark or Scala versions

Pros & Cons

Pros

Bi-directional Data Transfer

Enables reading Neo4j data into Spark DataFrames and writing processed results back, facilitating seamless ETL pipelines and graph analytics workflows as highlighted in the key features.

Standard Spark Integration

Uses Spark's DataSource API for consistent, optimized data access patterns, allowing integration with existing Spark applications without custom code, per the philosophy.

Multi-Version Support

Compatible with Spark 3.x and supports Scala 2.12 and 2.13, providing flexibility for various deployments, as shown in the building instructions and integration examples.

Flexible Deployment Options

Can be integrated via JAR files, Spark Packages, or dependency managers like Maven and sbt, simplifying setup across different environments, as detailed in the README.

Cons

Separate Documentation

Documentation is hosted in a different repository (docs-spark), which can make it harder to access and maintain compared to integrated docs, potentially slowing down troubleshooting.

Version Complexity

Specific versioning for Spark and Scala variants (e.g., _2.12 or _2.13) may lead to dependency conflicts in complex projects, requiring careful management as noted in the compatibility section.

Performance Overhead

Transferring data between Neo4j and Spark can introduce latency for large datasets, especially compared to in-memory processing, which might impact real-time or high-throughput use cases.

Frequently Asked Questions

Quick Stats

Stars321
Forks119
Contributors0
Open Issues3
Last commit14 hours ago
CreatedSince 2016

Tags

#hacktoberfest#apache-spark#neo4j-driver#spark#graph-analytics#cypher#scala#big-data#data-processing#data-connector#graph-database#bolt#etl#neo4j

Built With

M
Maven
S
Scala
A
Apache Spark

Links & Resources

Website

Included in

Apache Spark1.9kNeo4j554
Auto-fetched 5 hours ago

Related Projects

GraphFramesGraphFrames

GraphFrames is a package for Apache Spark which provides DataFrame-based Graphs

Stars1,193
Forks267
Last commit20 days ago
neo4j-javascript-driverneo4j-javascript-driver

Neo4j Bolt driver for JavaScript

Stars916
Forks157
Last commit11 days ago
neo4j-java-driverneo4j-java-driver

Neo4j Bolt driver for Java

Stars344
Forks157
Last commit17 days ago
Bolt.SipsBolt.Sips

Neo4j driver for Elixir

Stars267
Forks52
Last commit2 years 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