JohnSnowLabs

JohnSnowLabs/spark-nlp

Scala Apache-2.0 AI & ML

State of the Art Natural Language Processing

4.1k stars
743 forks
active
GitHub +2 / week

4.1k

Stars

743

Forks

24

Open issues

30

Contributors

6.4.2 24 Jun 2026

AI Analysis

Spark NLP is a distributed natural language processing library built on Apache Spark, offering 100,000+ pretrained models and pipelines across 200+ languages with support for modern transformers (BERT, GPT2, Llama, etc.) and multimodal tasks. It serves machine learning teams and data scientists who need production-scale NLP workflows across JVM and Python ecosystems, and is particularly valuable for organizations already invested in Spark infrastructure; it is NOT a general-purpose NLP librar...

AI & ML AI Framework Discovery value: 3/10
Documentation 8/10
Activity 10/10
Community 9/10
Code quality 6/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

nlp transformers machine-learning distributed-computing llm
Actively maintained Well documented Popular Niche/specialized use case Production ready
Deep Analysis · Based on README and public signals
1w ago

Spark NLP brings distributed NLP at scale to JVM and Python via Apache Spark, with 36,000+ pretrained models across 200+ languages

Spark NLP is a production-oriented natural language processing library that extends Apache Spark to execute NLP tasks in distributed environments. Built by John Snow Labs, it provides transformer model support (BERT, RoBERTa, LLaMA, Whisper, etc.), 36,000+ pretrained pipelines, and multilingual coverage. It targets organizations running Spark clusters who need NLP at scale and JVM compatibility, particularly in data engineering and ML ops contexts. Adoption appears concentrated in enterprise and regulated industries where Spark infrastructure already exists.

Origin

Spark NLP emerged in 2017 as a bridge between Spark's distributed compute and NLP model serving. It evolved from early rule-based annotation tools to transformer-native architecture, adding LLM support and cross-framework model importing (TensorFlow, ONNX, OpenVINO, GGUF) to remain relevant as the NLP landscape shifted toward large models.

Growth

Project gained initial traction among Spark-dependent organizations (financial services, healthcare, tech companies with existing Spark infrastructure). Growth appears steady but not explosive: 4,137 GitHub stars indicate moderate visibility compared to general-purpose Spark (43,536) and Stanford CoreNLP (10,089). Recent commit activity (last push 2026-07-01) shows active maintenance; 0 stars gained in last 7 days suggests growth has plateaued or stabilized rather than accelerating.

In production

README explicitly states 'Spark NLP is the only open-source NLP library in production that offers state-of-the-art transformers'. Claims 36,000+ pretrained models and 200+ languages. Maven Central and PyPI presence indicate production-grade distribution. However, concrete adoption metrics (company deployments, case studies, production user counts) are not documented in README. Adoption not fully verified but infrastructure suggests real enterprise use exists.

Code analysis
Architecture

Appears to be a Scala-based Spark extension with Python bindings via PySpark. README indicates native support for JVM languages (Java, Scala, Kotlin) and Python. Architecture likely leverages Spark's distributed DataFrame/RDD model for parallelization. Supports model importing from multiple frameworks (TensorFlow, ONNX, OpenVINO, Llama.cpp), suggesting modular design. Detailed implementation quality cannot be verified from README alone.

Tests

not documented in README. Build badges shown, but README does not specify test suite scope, coverage percentage, or testing strategy.

Maintenance

Last push 2026-07-01 (1 day before evaluation date) indicates active ongoing maintenance. Maven Central and PyPI distribution badges suggest regular release cycle. However, 0 stars gained in 7 days and 4,137 total stars (lower than comparable tools) suggests either stable, mature maintenance or slowing adoption momentum — likely the former given recent commit activity and formal release infrastructure.

Honest verdict

ADOPT IF: your organization already operates Apache Spark clusters, requires NLP at distributed scale, needs JVM language compatibility (Java/Scala/Kotlin), or works in regulated industries where data cannot leave on-premise Spark infrastructure. AVOID IF: you are building Python-only microservices, need lightweight single-machine NLP, have no Spark investment, or prefer the Hugging Face ecosystem (transformers + inference frameworks like vLLM, TGI). MONITOR IF: you are evaluating Spark for data pipelines and need to incorporate NLP — Spark NLP becomes a strong fit; or if you use Spark today but haven't assessed NLP coverage — it may eliminate integration complexity.

Independent dimensions

Mainstream potential

4/10

Technical importance

7/10

Adoption evidence

6/10

Risks
  • Vendor lock-in to Apache Spark: switching away from Spark requires rewriting NLP pipeline integration; Spark NLP has no clear escape hatch.
  • Smaller ecosystem relative to spaCy or Hugging Face: fewer third-party integrations, community plugins, and Stack Overflow answers may increase time-to-productivity for common tasks.
  • JVM memory overhead: Spark + Java/Scala runtime adds memory footprint compared to Python-native alternatives; may be prohibitive in resource-constrained environments.
  • Model serving maturity unclear: README focuses on batch/DataFrame workflows; real-time serving (REST APIs, streaming latency, model versioning) not detailed — production serving may require additional tooling.
  • Pretrained model quality not independently documented: README claims 36,000+ models but does not publish benchmarks, accuracy comparisons, or language-specific quality metrics — users must validate independently.
Prediction

Spark NLP will likely remain a solid, actively maintained specialized tool for organizations with existing Spark infrastructure but will not achieve mainstream NLP adoption. The JVM + Spark requirement creates a permanent, defensible niche; growth will be steady but slow, driven by Spark adoption rather than independent appeal. Risk of gradual erosion if cloud-native (Kubernetes, serverless) inference models displace Spark batch workflows in enterprise NLP.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Scala
59.2%
Python
22.4%
HTML
16.7%
Java
1.7%
Shell
0%
Makefile
0%
Rich Text Format
0%

Information

Language
Scala
License
Apache-2.0
Last updated
1d ago
Created
107mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

apache

apache/opennlp

Apache OpenNLP is a Java-based machine learning toolkit for natural language...

1.6k Java AI & ML
stanfordnlp

stanfordnlp/CoreNLP

Stanford CoreNLP is a mature Java library providing a comprehensive suite of...

10.1k Java AI & ML
apache

apache/spark

Apache Spark is a unified analytics engine for large-scale distributed data...

43.6k Scala Data
microsoft

microsoft/SynapseML

SynapseML is an open-source library that simplifies building massively scalable...

5.2k Scala AI & ML
vs. alternatives
Stanford CoreNLP

CoreNLP (10,089 stars) is more established and Java-native but lacks transformer support and distributed scaling. Spark NLP targets organizations needing parallelization; CoreNLP suits single-machine, rule-heavy NLP.

Apache OpenNLP

OpenNLP (1,605 stars) is lightweight Java library without transformer models or Spark integration. Spark NLP is heavier but offers modern model support and enterprise scaling.

spaCy + Spark context

spaCy dominates Python NLP but is single-threaded and Python-only. Spark NLP targets distributed, multi-language, JVM-inclusive workflows where Spark already exists.

SynapseML

Microsoft's SynapseML (5,228 stars) also extends Spark for ML tasks. Spark NLP is NLP-specialized; SynapseML is broader. Both serve Spark ecosystem but different niches.

Hugging Face Transformers + Spark

Hugging Face transformers dominate Python; no native Spark support. Spark NLP bridges this gap for distributed JVM environments but requires Spark infrastructure to justify adoption cost.