mockr
mockr is a Python library for writing MapReduce jobs in an Educational setting. It is intended to be used as a conceptual teaching tool.
mockr provides an interface for defining and running MapReduce locally. Simply define your map and reduce functions, input your data and call the run function. Everything is run sequentially and locally.
Installation
pip install mockr
Documentation
Full documentation available here https://mockr.readthedocs.io/
Streaming Jobs
StreamingJob class which expects the input to be a byte stream of characters. The chunks of data are separated by newline ("\n") characters. Each line is sent to a separate map worker.
Native Python Sequence Jobs
PythonJob class expects input to be a Collections.abc.Sequence type object e.g. Python List. Python Jobs provide two exection methods:
- the sequence is divided into chunks and each chunk is sent to a separate map worker
- each item in the list is individually sent to a dedicated map worker
Pandas Jobs
PandasJob class expects input to be a Pandas DataFrame. The rows of the data frame are equally divided into chunks and each chunk is sent to a separate map worker
Example Usage
import re
from mockr import run_stream_job
WORD_RE = re.compile(r"[\w']+")
def map_fn(chunk):
# yield each word in the line
for word in WORD_RE.findall(chunk):
yield (word.lower(), 1)
def reduce_fn(key, values):
yield (key, sum(values))
input_str = "Hello!\nThis is a sample string.\nIt is very simple.\nGoodbye!"
results = run_stream_job(input_str, map_fn, reduce_fn)
print(results)
Output:
[('hello', 1), ('this', 1), ('is', 2), ('a', 1), ('sample', 1), ('string', 1), ('it', 1), ('very', 1), ('simple', 1), ('goodbye', 1)]
Metadata
Release files for mockr 0.36
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mockr-0.36-py3-none-any.whl | Python 3 | none | any | Details |
Release files / mockr-0.36-py3-none-any.whl
| Download URL | mockr-0.36-py3-none-any.whl |
|---|---|
| Size | 4.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
90b33602a87ae963eb46818dbd27e2533ed623b7b11d3616b292815e614ec7b2
|
|
BLAKE2b-256 checksum How to use checksums |
642a4d95feac8c2dc83992a655ab551705965c51bada3ba1cfe6f501705a8716
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/38.5.2 requests-toolbelt/0.8.0 tqdm/4.23.3 CPython/2.7.14
|
Security for mockr 0.36
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.