A papermill implementation to run notebooks inside dataproc serverless
Project description
Paperless
Paperless is a tool that extends the capabilities of Papermill by providing the ability to run Papermill via Google Cloud Dataproc Serverless.
Overview
Papermill is a powerful tool for parameterizing and executing Jupyter Notebooks. However, by default papermill dosn't support Jupyter Kernel Gateway - it was impossible to run spark notebook vs Google Cloud Dataproc Serverless environment with Papermill tool - this is where Paperless helps.
Paperless bridges the gap between Papermill and Google Cloud Dataproc Serverless interactive mode, allowing you to seamlessly integrate the two and harness the power of serverless execution for your Jupyter Notebooks.
Features
-
Serverless Execution: Run Papermill on Google Cloud Dataproc without managing the underlying infrastructure.
-
Scalability: Leverage the scalability of Google Cloud Dataproc for processing multiple Notebooks concurrently.
-
Cost-Effective: Pay only for the resources you consume during the execution, optimizing costs for your notebook parameterization tasks.
Pricing model is much more cost-effective considering other platofrms and technologies
resource: https://cloud.google.com/dataproc-serverless/pricing
Getting Started
Prerequisites
Before using Paperless, make sure you have the following:
- A Google Cloud Platform (GCP) project
- Access to Google Cloud Dataproc Enable the API
- Papermill installed locally or in your environment
Step 1: Install Google Cloud SDK
To authenticate your application using Application Default Credentials (ADC) with gcloud
-
If you haven't already installed the Google Cloud SDK, you can download and install it from the Google Cloud SDK documentation.
Step 2: Authenticate with gcloud
Open a terminal and run the following command to authenticate your Google Cloud SDK with your Google Cloud Platform (GCP) account:
gcloud auth login
gcloud auth application-default login
gcloud config set project <project_id>
gcloud config set compute/region <region>
gcloud config set dataproc/region <region>
Step 3: Install Paperless
pip install paperless
Step 4: Create sessionTemplates For Paperless
Parameters and details can be found in GCP Docs.
The default template name is: paperless-interactive
gcloud compute instance-templates create paperless-interactive --<extra params...>
You can change parameters as you need based on the jobs needs - check the docs for that.
Step 5: Test Executtion:
Paperless excepts && supports all list or arguments exists in original Papermill package - the minimum needed for testing:
paperless <input_path> <output_path> ...
An extra environment variable that is special for Paperless: TEMPLATE_NAME=paperless-interactive Example:
export TEMPLATE_NAME=paperless-interactive && \
paperless ./resources/spark.ipynb ./resources/spark-out.ipynb
You're all set, enjoy :)
Local development:
# Create a new directory for your project
git clone https://github.com/Plarium-Repo/paperless.git && cd paperless
# Create a virtual environment
python3 -m venv .venv
# Activate the virtual environment
# On Windows
.venv\Scripts\activate
# On macOS and Linux
source venv/bin/activate
# Install requirements
pip install -r requirements.txt
# Install the command line
python setup.py install
# Execute example
export TEMPLATE_NAME=paperless-interactive && ./.venv/bin/paperless ./tests/resources/test.ipynb ./tests/resources/test-out.ipynb
Made With Love ❤️ from :israel: :israel:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file paperless-1.5.3.tar.gz
.
File metadata
- Download URL: paperless-1.5.3.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7583711aea6478e61b1ca9c27b9f0f30c7a8a521e7118e0010aef421b89c53e |
|
MD5 | b79978d2b70245c837db2bcd53f3b7d4 |
|
BLAKE2b-256 | d69095666c7ded1476bdf8e4195a84c7d6972947f886753d694cf8a1d33d0554 |
File details
Details for the file paperless-1.5.3-py3-none-any.whl
.
File metadata
- Download URL: paperless-1.5.3-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5dfd0e3b8fed30622d74f34f48569f8d75c89d8eae31a0628490a2cb21903f5 |
|
MD5 | dc8f4bf5ed65fbb6aec5fd77d89ad45a |
|
BLAKE2b-256 | 4fff2f09c90d4827104ddda424290b147d1fafeee8a0845d1cdd37709f44c957 |