{"adoption": {"forks": 580, "observed_at": "2026-08-28T04:07:04.490724+00:00", "stars": 2613}, "canonical_url": "https://ross.abutalabs.com/products/mrjob", "card": {"archived": false, "artifact_type": "library", "description": "Run MapReduce jobs on Hadoop or Amazon Web Services", "domain": ["big-data", "cloud-computing", "developer-tools"], "enriched": true, "function": ["etl", "streaming", "data-science", "cli"], "health_score": 65, "homepage": "http://packages.python.org/mrjob/", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["Yelp/mrjob"], "name": "Yelp/mrjob", "platform": ["python", "cli", "cloud"], "pushed_at": "2026-04-02T17:05:58+00:00", "repo": "Yelp/mrjob", "stars": 2613, "tags": ["mapreduce", "hadoop", "hadoop-streaming", "amazon-emr", "google-cloud-dataproc", "spark", "distributed-computing", "batch-processing", "data-engineering"], "topics": [], "urls": [], "use_cases": ["run mapreduce jobs on hadoop from python", "run batch data processing on amazon emr", "test hadoop streaming jobs locally before deploying", "run multi-step mapreduce pipelines", "launch spark jobs on emr from python", "process large log files with mapreduce", "run word count and frequency analysis on a hadoop cluster"], "what_it_is": "mrjob is a Python library for writing and running Hadoop Streaming MapReduce jobs, with support for Amazon EMR, Google Cloud Dataproc, self-managed Hadoop clusters, and local execution for testing. It also supports launching Spark jobs and handles multi-step jobs, environment setup, and error log interpretation.", "when_to_avoid": ["you are starting a new project - modern data processing tools like Spark, Dask, or Ray are better supported", "you need real-time or stream processing rather than batch MapReduce", "you are not tied to Hadoop or EMR infrastructure"], "when_to_choose": ["you need to write Hadoop Streaming jobs in pure Python without JVM boilerplate", "you want to run the same job locally, on EMR, Dataproc, or your own Hadoop cluster", "you need multi-step MapReduce pipelines with automatic config and log interpretation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mrjob", "repo": "Yelp/mrjob", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.490724+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:20:38.103887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1cd578f9851d2284fb5bad151efafa420a815614b6d0c80fff07ccc52356a34", "fetched_at": "2026-08-28T04:07:04.490724+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Yelp/mrjob"}, {"content_hash": "4bf39c634e734e7647c9ebb85d6b29941b956a15893478b789be9b0547bbdca1", "fetched_at": "2026-08-29T10:03:34.009440+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mrjob/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 75, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5803, "days_push": 153, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}