PySpark CLI
This will implement a PySpark Project boiler plate code based on user input.
Apache Spark is a fast and general-purpose cluster computing system. It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for graph processing, and Spark Streaming.
PySpark is the Python API for Spark.
Installation Steps:
git clone https://github.com/qburst/PySparkCLI.git
cd PySparkCLI
pip3 install -e . --user
Create a PySpark Project
pysparkcli create [PROJECT_NAME] --master [MASTER_URL] --cores [NUMBER]
master - The URL of the cluster it connects to. You can also use -m instead of --master.
cores - You can also use -c instead of --cores.
Run a PySpark Project
pysparkcli run [PROJECT_NAME]
PySpark Project Test cases
- Running by Project name
pysparkcli test [PROJECT_NAME]
- Running individual test case with filename: test_etl_job.py
pysparkcli test [PROJECT_NAME] -t [etl_job]
FAQ
Common issues while installing pysparkcli:
* pysparkcli: command not found
Make sure you add user’s local bin to PATH variable.
Add the following code in .bashrc file
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
* JAVA_HOME is not set
Make sure JAVA_HOME is pointing to your JDK and PYSPARK_PYTHON variable is created.
You can add them manually by in .bashrc file:
Example:
export PYSPARK_PYTHON=python3
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Save the file and run the following to update environment.
source ~/.bashrc
Project Structure
The basic project structure is as follows:
sample
├── __init__.py
├── src
│ ├── app.py
│ ├── configs
│ │ ├── etl_config.json
│ │ └── __init__.py
│ ├── __init__.py
│ ├── jobs
│ │ ├── etl_job.py
│ │ └── __init__.py
│ └── settings
│ ├── default.py
│ ├── __init__.py
│ ├── local.py
│ └── production.py
└── tests
├── __init__.py
├── test_data
│ ├── employees
│ │ └── part-00000-9abf32a3-db43-42e1-9639-363ef11c0d1c-c000.snappy.parquet
│ └── employees_report
│ └── part-00000-4a609ba3-0404-48bb-bb22-2fec3e2f1e68-c000.snappy.parquet
└── test_etl_job.py
8 directories, 15 files
Contribution Guidelines
Check out here for our contribution guidelines.
Sponsors
Metadata
Release files for pysparkcli 0.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pysparkcli-0.0.8.tar.gz | 10.5 kB | Without provenance | Details for pysparkcli-0.0.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pysparkcli-0.0.8-py3-none-any.whl | Python 3 | none | any | Details for pysparkcli-0.0.8-py3-none-any.whl |
Total release size: 24.5 kB
Release files / pysparkcli-0.0.8.tar.gz
| Download URL | pysparkcli-0.0.8.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
21db2d754221c39b5c71cbf9a8e5b711d1cbc5f355b314f665fa3b410372b04f
|
|
BLAKE2b-256 checksum How to use checksums |
586dc79aa299b71298f36ccb19a8cfeedab758314be161c0499a5e1575c9df06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.5
|
Release files / pysparkcli-0.0.8-py3-none-any.whl
| Download URL | pysparkcli-0.0.8-py3-none-any.whl |
|---|---|
| Size | 14.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
16733a7aca36308e1f5cebb323cde40d83dfd01260e468a2f9a1c5f87d9446dd
|
|
BLAKE2b-256 checksum How to use checksums |
39723aa96d896966c2f1aec777123dd0167bd2589b771165b6a756e7a9daf958
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.5
|
Security for pysparkcli 0.0.8
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.