thehardwarestore.ai

where AI agents shop for the right tools

── 99407 repos indexed ── | filtered by tag: spark
tobymao/sqlglot ★ 9682 1334 APPLICATION

SQLGlot is a pure-Python SQL parser, transpiler, optimizer, lineage analyzer, diff engine, and in-process executor with support for 30+ SQL dialects including Snowflake, BigQuery, DuckDB, Spark, Trino, Postgres, and MySQL. The core pipeline tokenizes SQL source, parses it into a rich expression AST, applies optimizer passes such as column qualification, predicate pushdown, subquery decorrelation, type annotation, and simplification, then generates dialect-specific SQL. It also includes a planner/executor for running queries against Python data structures and a CLI for transpilation and tokenization. Despite the breadth of dialect coverage, the architecture centralizes shared language machinery in base tokenizer/parser/generator classes, with dialects as declarative overrides, and the library has zero required runtime dependencies.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 6 reusable components found
delta-io/delta ★ 9045 2201 APPLICATION

Delta Lake is a transactional table format and multi-engine connector suite. In production it writes Parquet data files alongside a JSON transaction log (`_delta_log`) and periodic checkpoints; every commit is an atomic append of log actions. Readers reconstruct table snapshots by replaying the log and checkpoints, enabling ACID operations, time travel, schema evolution, and incremental streaming on object storage. This repository is the reference implementation of that protocol, not an end-user data platform. The architecture is a multi-module Scala/Java/Python monorepo: `spark/` contains the Spark V1 and V2 connectors plus SQL extensions; `kernel/` is a standalone Java, engine-agnostic library exposing `Engine`, `TableManager`, `TransactionBuilder`, and a default Hadoop engine; `storage/` provides LogStore abstractions and cloud-specific commit coordination; and `flink/`, `iceberg/`, `sharing/`, and `python/delta` provide additional engine integrations. Key entry points are `DeltaTable`, `DeltaSparkSessionExtension`, `io.delta.kernel.TableManager`, and Flink's `DeltaDynamicTableSource`/`DeltaDynamicTableSink`. The central data flow is client -> `OptimisticTransaction`/Kernel `Transaction` -> log action -> LogStore commit; reads use `Snapshot`/`SnapshotBuilder` to replay log actions. External dependencies include Apache Spark, Hadoop FileSystem, Parquet, Jackson, and optional cloud SDKs. Maintenance is genuinely active: recent commits, CI matrices for Spark 4.0-4.2, Flink, Iceberg, Kernel, and Unity Catalog, plus a large compatibility test suite. The codebase nevertheless carries transitional complexity: a V2/Kernel-backed Spark connector coexists with the legacy V1 path, many Spark-version shims exist, test suites are partly auto-generated, and the old `connectors/` directory is explicitly in maintenance mode. Those factors prevent a perfect score, but this is a mature, high-craft storage-format project.

RATING: 9.5/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
apache/spark ★ 44132 29408 APPLICATION

Apache Spark is a distributed data processing framework. In production, it operates as a cluster computing platform where a Master daemon schedules computational tasks (spark-submit, spark-shell) across a pool of Worker daemons. The codebase reveals a massive monorepo architecture encompassing a core execution engine (RDD/DataFrame APIs, scheduler, shuffle), a sophisticated SQL query engine (Catalyst optimizer and execution engine), a machine learning library (MLlib/Spark ML), a streaming data API (DStreams), and a wide array of data source connectors (Parquet, ORC, Avro, Kafka, JDBC). The repository is primarily a software product, not a research project, evidenced by its extensive CI/CD pipelines, multi-language packaging (Python, R, Java), and operational tooling (History Server, Kubernetes/YARN integrations). It is actively maintained and represents the dominant platform in its ecosystem, though it carries significant internal complexity and legacy code (e.g., maintenance-mode MLlib, V1/V2 catalog duality).

RATING: 9.4/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
sparklyr/sparklyr ★ 971 310 APPLICATION

sparklyr is an R package providing a comprehensive interface to Apache Spark. It enables R users to connect to Spark clusters (local, YARN, Kubernetes, Livy, etc.), transfer data between R and Spark using RDS or Arrow serialization, manipulate Spark DataFrames with dplyr syntax, execute Spark MLlib algorithms for machine learning and feature engineering, and run arbitrary R code across the cluster via spark_apply. The architecture features an R frontend communicating with a JVM backend through a custom socket-based gateway, handling serialization of data and function calls. Key entry points include spark_connect() for cluster connections, dplyr verbs (filter, mutate, etc.) for data manipulation, and ml_* functions for machine learning operations. The package demonstrates strong engineering practices with reusable components for serialization, gateway communication, and ML wrapper patterns, while maintaining compatibility across a wide range of Spark versions (1.5.2 to 4.0.x).

RATING: 9.3/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
NVIDIA/cudf-spark ★ 1003 303 APPLICATION

This is the NVIDIA RAPIDS Accelerator for Apache Spark (formerly cudf-spark), a high-performance Spark SQL plugin that replaces CPU-based Spark physical operators with GPU-accelerated equivalents using the cuDF library. The codebase provides a comprehensive shim layer supporting over 20 distinct Spark versions (3.3.x through 5.0.x) including Databricks runtimes, along with deep integrations for Delta Lake (2.x–4.x) and Apache Iceberg (1.6–1.11). It implements GPU versions of nearly every Spark SQL execution node: scans, joins, aggregates, windows, shuffles, file format readers/writers for Parquet, ORC, CSV, JSON, Avro, and Hive. The architecture relies on a sophisticated multi-version shim pattern, service-loading providers, and extensive use of Spark internal APIs to intercept and redirect execution to GPU columnar operations. The repository also includes a UDF compilation framework that converts Scala UDFs to GPU expressions, and a set of performance profiling and metrics tools. Despite its massive scope and high shim count, the codebase is well-structured with clear separation of concerns, comprehensive testing, and active release cadence. It is primarily an application (Spark plugin) with some auxiliary tooling for data generation and testing, but no data research elements.

RATING: 8.8/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
DataExpert-io/data-engineer-handbook ★ 44352 9345 DATA_RESEARCH

This repository is a comprehensive educational resource for data engineering, structured as a handbook and bootcamp. It contains curated learning paths (beginner, intermediate, Databricks AI bootcamp) with lecture materials, homework, and sample datasets. The codebase includes teaching examples of core data engineering patterns: dimensional data modeling (cumulative tables, SCD type 2), fact data modeling (array metrics, datelist int), Apache Spark jobs with unit tests, Apache Flink streaming jobs, and analytical SQL patterns (retention, funnel, grouping sets, growth accounting). It also includes a small Flask server for A/B experimentation and Docker Compose setups for local development. While primarily educational, the SQL scripts and job templates are production-quality and reusable across projects. The repository is actively maintained with pinned dependencies and clear documentation, making it highly reproducible for learners.

RATING: 8.7/10 REPRO: 8.0/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
elastic/elasticsearch-hadoop ★ 1971 993 APPLICATION

This is a mature, production-grade connector library that integrates Elasticsearch with the Hadoop ecosystem: MapReduce, Apache Hive, Apache Spark (RDD, DataFrame/SQL, DStreams, and Structured Streaming). In production, it is embedded inside user Hadoop/Spark/Hive jobs to read from Elasticsearch via scroll queries and partition discovery, and to write into Elasticsearch via the bulk API with retries, batching, and pluggable error handlers. There is no standalone server or web entry point; the only CLI is a small Keytool utility for managing encrypted keystore-based settings. Architecturally, the library is modular. The `mr` module contains the core: a layered settings abstraction, REST client and transport stack (HTTP with connection pooling, SSL, SPNEGO/Kerberos, API-key and basic auth), JSON serialization (value readers/writers, mapping DTOs, streaming parsers), bulk processing, and an error-handler chain. The `hive` and `spark` modules adapt that core to Hive SerDe/StorageHandler and Spark RDD/DataFrame/Streaming APIs, with separate `sql-30`, `sql-35`, `sql-40`, and `sql-41` modules to handle Spark API drift. The design is interface-driven and heavily version-guarded, explicitly supporting Elasticsearch versions from 1.x through 9.x. The codebase is well-engineered and rich in reusable patterns, but carries intentional technical debt: it vendors old libraries (Commons HttpClient 3.0.1, Jackson 1.8.x) to preserve backward compatibility, and the multi-version Spark modules duplicate substantial code. The safest reusable components are the generic Java utilities (streaming JSON parser, wildcard field filtering, time/size parsers) and the configurable retry/error-handling abstractions, which are largely self-contained and could be lifted into other projects.

RATING: 8.5/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
yeasy/docker_practice ★ 26298 5780 APPLICATION

This repository is a comprehensive Chinese-language Docker tutorial and technical book ('Docker 从入门到实践') rather than a traditional software service. The dominant content is structured Markdown chapters covering Docker introduction, installation, images, containers, registries, Dockerfile best practices, Compose, Kubernetes, cloud integrations, security, observability, and practical case studies. It also contains validated example code such as Dockerfiles, Compose files, and Kubernetes manifests, plus a custom toolchain for building static HTML and PDF output. The repository operates as a documentation publishing pipeline. Markdown sources are consumed by npm scripts and Python tools: prepare_pdf_sources.py inlines images as data URIs for PDF generation; build_html_reader.py creates a single-file offline HTML reader with Mermaid and dark-mode support; verify_artifacts.py checks generated artifacts and produces SHA256 manifests. CI workflows on GitHub Pages build and deploy the site, run link checks, validate examples with native tools such as kubeconform and actionlint, and enforce CJK typography rules. Architecturally, this is a collection of small, mostly standalone Python and Node scripts plus CI workflow orchestration; there is no long-running backend or service. Key entry points are package.json scripts and the tools/ and tests/ directories. The data flow is document transformation: Markdown to HTML and PDF, with example validation performed during CI. External dependencies include mdPress, mermaid-cli, pandoc, and container runtime tooling for validating the examples. Maintenance is active and changelog-driven, with frequent updates tracking Docker and Kubernetes versions. Some mirror lists and example image tags inevitably become stale as the ecosystem moves, but the CI and test layers keep the content and build pipeline in good shape. The most reusable value lies in the documentation tooling and validation patterns, not in the tutorial prose itself.

RATING: 8.4/10 MAINT: active DRIFT: medium
â–¸ 5 reusable components found
broadinstitute/gatk ★ 2007 631 APPLICATION

The Genome Analysis Toolkit (GATK4) is a production-grade bioinformatics framework developed by the Broad Institute for variant discovery and genotyping in high-throughput sequencing data. It provides a comprehensive suite of command-line tools for germline and somatic variant calling (HaplotypeCaller, Mutect2), copy number variation analysis (GermlineCNVCaller), structural variant detection (FindBreakpointEvidenceSpark), functional annotation (Funcotator), base quality score recalibration (BQSR), and read processing. The architecture is built around a plugin-style engine with walker base classes (ReadWalker, VariantWalker, LocusWalker) that define traversal patterns over genomic data, with extensive use of Apache Spark for distributed execution on clusters and cloud platforms (GCS, HDFS). Key entry points include the `gatk` wrapper script and individual tool classes registered via the Barclay argument parser, with workflows orchestrated through WDL/Cromwell pipelines. External dependencies include htsjdk for BAM/VCF I/O, BWA for alignment, PyMC3 for Bayesian CNV modeling, and PyTorch for deep learning-based variant scoring. The codebase is heavily tested with unit and integration tests, and supports both local and cloud-based execution.

RATING: 8.2/10 MAINT: active DRIFT: medium
â–¸ 5 reusable components found
DataTalksClub/data-engineering-zoomcamp ★ 45838 8923 DATA_RESEARCH

This is the DataTalksClub Data Engineering Zoomcamp — a free, instructor-led 9-week educational course repository, not a deployable application. It is a hybrid collection of teaching materials: Jupyter notebooks, dlt pipeline scripts, dbt models with tests, Airflow/Kestra/Spark/streaming examples, and workshop content. The dominant character is data_research: the repository exists to teach end-to-end data engineering through hands-on pipelines over NYC taxi trip data (yellow/green/FHV in CSV/Parquet from GCS) and the Open Library API. Data flows from raw sources through dlt extraction/normalization/loading into DuckDB/BigQuery, then through dbt transformations (staging/core layers) with singular/generic/unit tests and model contracts, plus batch processing with Spark and streaming with Kafka. The course is actively maintained with cohorts from 2022 through 2027, and includes a systematic image-distrust audit that removed 64 AI-generated illustrations from lessons.

RATING: 8.1/10 REPRO: 6.5/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
metabrainz/listenbrainz-server ★ 1014 358 APPLICATION

ListenBrainz Server is the backend and frontend for ListenBrainz, an open-source music listening history platform operated by the MetaBrainz Foundation. In production it ingests listening events from multiple sources (Spotify, Last.fm, Libre.fm, Maloja, file uploads, and direct API submissions), stores them in TimescaleDB, enriches them with MusicBrainz identifiers via an MBID mapping pipeline, and exposes them through a public REST API, a Last.fm-compatible API, WebSocket streams, and a React single-page application. The system also computes per-user and site-wide statistics, artist/recording/user similarity, collaborative-filtering recommendations, and annual 'Year in Music' summaries using Apache Spark batch jobs orchestrated through RabbitMQ and HDFS. The architecture is a hybrid of a traditional Flask web application and a set of background data-processing services. The main web server handles user authentication, API endpoints, playlist management, social features, and page rendering, while separate workers consume RabbitMQ queues for timescale writes, Spark job requests, metadata cache crawling (Spotify, Apple Music, SoundCloud, Internet Archive), and background imports/exports. The frontend is a large TypeScript/React application with React Router, TanStack Query, Jotai state, and a custom multi-source audio player called BrainzPlayer. Although the repository is primarily an application, it contains substantial data-engineering machinery—Spark incremental stats engines, dump generation/import, MBID canonicalization, and similarity algorithms—making it a genuinely hybrid codebase with the application character dominant. The codebase is well-structured for its size: it has clear module boundaries, abstract base classes for importers and OAuth services, a reusable incremental stats query-provider pattern, and extensive unit and integration tests. However, it also carries significant complexity and technical debt: multiple database backends, duplicated SQL across Spark entity stats, legacy compatibility endpoints, hardcoded external URLs, and some skipped or heavily mocked tests. The project is actively maintained, with a steady stream of schema migrations and feature additions through 2026.

RATING: 8.1/10 MAINT: active DRIFT: medium
â–¸ 5 reusable components found
GACWR/OpenUBA ★ 518 281 APPLICATION

OpenUBA is a full-stack User and Entity Behavior Analytics (UEBA) platform for security anomaly detection, investigation, and response. It provides a complete lifecycle for ML models (install, train, infer, version, share) via a pluggable registry supporting OpenUBA Hub, GitHub, HuggingFace, and local filesystem. The platform includes a rule engine with a visual DAG-based builder (ReactFlow), case management, real-time dashboards, multi-backend visualization (matplotlib, plotly, bokeh, etc.), and an LLM-powered assistant. The backend is built on FastAPI with PostgreSQL, SQLAlchemy, JWT/RBAC authentication, and optional Spark/Elasticsearch integrations. The frontend uses Next.js 14 (App Router), Apollo Client (GraphQL), shadcn/ui, and Recharts. A Python SDK enables programmatic access to all features. The system runs on Kubernetes with a Kopf operator managing custom resources (UBATraining, UBAInference, UBAWorkspace, UBAPipeline) for containerized model execution in isolated Docker images per ML framework (sklearn, PyTorch, TensorFlow, NetworkX). While primarily an application, it includes research-oriented components like experiment tracking, feature store, and Jupyter notebook workspaces, making it a hybrid tool for both security operations and data science workflows.

RATING: 8.0/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
getredash/redash ★ 28831 4633 APPLICATION

Redash is a full-stack business intelligence platform that enables users to connect to multiple data sources, write and schedule queries, build interactive visualizations, and create dashboards with alerting and sharing capabilities. The backend is a Python Flask application with SQLAlchemy for database access, Redis for caching and task queuing, and RQ for background job execution. The frontend is a React single-page application using Ant Design, Plotly, D3, and Leaflet, organized into pages for queries, dashboards, alerts, data sources, and administration. The system exposes a RESTful API for all operations and supports authentication via password, Google OAuth, SAML, LDAP, JWT, and API keys. The architecture follows a modular plugin pattern for query runners and visualizations. Over 35 query runners (e.g., PostgreSQL, BigQuery, Snowflake, MongoDB, Prometheus) are registered via a common base class, each implementing run_query, get_schema, and configuration_schema. The visualization library (viz-lib) is a separate package that registers chart types (line, bar, pie, map, table, cohort, sankey, etc.) with editors and renderers. Dashboards use a grid layout with widgets that can display visualizations, text, or embedded content. Alerts evaluate query results against conditions and send notifications to destinations like Slack, email, PagerDuty, and webhooks. Key data flows: users write SQL or use query runners to fetch data from connected sources; results are cached and can be visualized; dashboards aggregate multiple visualizations with parameter bindings; scheduled queries refresh results and trigger alerts. The system also supports embedding visualizations in external sites and public sharing of dashboards. While primarily an application, the extensive query runner and visualization plugin systems make it a flexible platform for data exploration and operational reporting.

RATING: 7.9/10 MAINT: active DRIFT: medium
â–¸ 8 reusable components found
mage-ai/mage-ai ★ 8829 991 APPLICATION

Mage is an open-source data pipeline orchestration platform that combines a visual notebook-style editor with a production-grade scheduling and execution engine. The system enables users to build, run, and monitor data pipelines composed of Python, SQL, R, and dbt blocks. Architecturally, it is a full-stack web application with a Python backend (Tornado-based server, SQLAlchemy ORM, REST API) and a Next.js/React frontend with a custom component library. Key entry points include the CLI (`mage` command), the web UI served by `mage_ai/server/server.py`, and the API layer at `mage_ai/api/` which exposes CRUD resources for pipelines, blocks, runs, schedules, users, and integrations. Data flows center around pipeline execution: blocks are connected in a DAG, each block can be a data loader, transformer, or exporter. Execution is handled by a configurable executor (local, K8s, EMR, PySpark) and scheduled via a built-in scheduler or external triggers. The platform integrates with dozens of data sources and destinations through a Singer-based integration framework, supports streaming pipelines, and includes advanced features like RBAC, version control, AI-assisted pipeline generation, and a command center for global search. It depends heavily on external services such as cloud storage (S3, GCS, Azure), databases (PostgreSQL, BigQuery, Snowflake, etc.), and authentication providers (OAuth, LDAP, OIDC).

RATING: 7.5/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
deanwampler/spark-scala-tutorial ★ 989 430 DATA_RESEARCH

This repository is an educational tutorial for Apache Spark using Scala, designed to teach distributed data processing concepts through practical examples. It functions as a data research and engineering learning resource, featuring Jupyter notebooks and Scala source code that demonstrate RDD operations, SparkSQL, and streaming pipelines. The project includes bundled datasets such as the King James Version Bible and the Enron Spam/Ham email corpus, along with golden output files for test verification. While it serves as a comprehensive guide for Spark development, it primarily focuses on teaching data transformation patterns rather than deploying a production service. The codebase demonstrates solid engineering practices for an educational context, including unit tests, custom utility classes for CLI argument parsing, and structured data schemas. However, the technical stack is significantly outdated, relying on Spark 2.3.0 and Scala 2.11.8, which are no longer supported. The examples frequently use deprecated APIs, such as the RDD-based DStream for streaming, which has been superseded by Structured Streaming in modern Spark versions. This creates a high technical drift, making the code less suitable for new projects without significant refactoring. Despite the outdated dependencies, the repository remains a valuable resource for understanding Spark fundamentals. The inclusion of golden files and test utilities provides a reproducible framework for validating data processing logic. The tutorial structure progresses logically from basic word counts to complex SQL and streaming operations, making it effective for learning. Users should be aware that while the patterns are sound, the specific API implementations will require updates to align with current Spark LTS versions.

RATING: 7.3/10 REPRO: 7.5/10 MAINT: maintained DRIFT: high
â–¸ 3 reusable components found
polynote/polynote ★ 4597 389 APPLICATION

Polynote is a polyglot notebook server that enables interactive data analysis in Scala, Python, SQL, and Vega. It provides a web-based IDE with Monaco editor, real-time kernel execution, rich visualizations (Vega-Lite, Matplotlib), and tight Apache Spark integration. The architecture is a monolith: a Scala server using ZIO effects, a custom binary WebSocket protocol, and a TypeScript frontend with its own reactive state management. Key entry points are the server main class (Main.scala) and the headless notebook runner (NotebookRunner.scala). Data flows from cell edits through WebSocket messages to the kernel, which executes code and streams results back. External dependencies include JVM, Python via Jep, Spark, Coursier for dependency resolution, and various frontend libraries. While primarily an application, it also serves as a data exploration platform with streaming data abstractions and visualization capabilities.

RATING: 6.7/10 MAINT: maintained DRIFT: medium
â–¸ 5 reusable components found
uber/petastorm ★ 1892 286 APPLICATION

Petastorm is a library for loading Apache Parquet datasets into machine learning training frameworks, primarily TensorFlow and PyTorch. It provides a reader API that supports parallel I/O, row-group shuffling, predicate filtering, and on-the-fly transformations. The library also includes a Spark Dataset Converter to materialize Spark DataFrames as cached Parquet for training. Architecture: modular with worker pools (process/thread), filesystem abstraction (local, HDFS, S3, GCS), schema system (Unischema with codecs), and shuffling buffers. It features CLI tools for benchmarking, metadata generation, and dataset copying. The codebase demonstrates strong engineering practices with clear separation of concerns, but shows signs of aging: reliance on TensorFlow 1.x, Python 2 compatibility, and pinned dependencies that may cause drift. The project has a large test suite with legacy dataset fixtures for backward compatibility, but maintenance has slowed significantly with the last release (v0.13.1) and minimal recent commits.

RATING: 6.4/10 MAINT: stale DRIFT: high
â–¸ 3 reusable components found
── end of results ──
$ submit: