A package to load and preprocess JSON data using PySpark
Project description
PySpark JSON Loader
Overview
pyspark-json-loader is a Python package designed to facilitate loading and preprocessing JSON data using PySpark. It provides functions to start a Spark session, connect to a PostgreSQL database, preprocess data, and convert Spark DataFrames to Pandas DataFrames.
Installation
To install the package, run:
pip install pyspark-json-loader
Usage
Here is a detailed guide on how to use the functions provided by the pyspark-json-loader package.
Importing the Module
To use the functions in this package, you need to import them as follows:
from pyspark_json_loader import load_json_file, start_spark_session, connect_to_db, preprocess_dataframe, convert_to_pandas
Functions
1. load_json_file(file_name)
Description: This function loads a JSON file and returns its contents as a Python dictionary.
Parameters:
- file_name (str): The path to the JSON file.
Returns:
- dict: The contents of the JSON file.
Example:
json_data = load_json_file('data.json')
print(json_data)
Output:
{
"column1": "value1",
"column2": "value2"
}
2. start_spark_session()
Description: This function starts a Spark session with the specified JAR file.
Returns:
- SparkSession: The Spark session object.
Example:
spark = start_spark_session()
print(spark)
Output:
<pyspark.sql.session.SparkSession object at 0x...>
3. connect_to_db(spark, host_name, port_number, db_name, user, password, query, null_value=0)
Description: This function connects to a PostgreSQL database using the provided connection details and query.
Parameters:
- spark (SparkSession): The Spark session object.
- host_name (str): The hostname of the PostgreSQL server.
- port_number (int): The port number of the PostgreSQL server.
- db_name (str): The name of the database.
- user (str): The username for the database.
- password (str): The password for the database.
- query (str): The SQL query to execute.
- null_value (int, optional): The value to use for null values. Default is 0.
Returns:
- DataFrame: The resulting DataFrame from the query.
Example:
df = connect_to_db(spark, 'localhost', 5432, 'mydatabase', 'user', 'password', 'SELECT * FROM mytable')
df.show()
Output:
| id | name |
|----|------|
| 1 | John |
| 2 | Jane |
4. preprocess_dataframe(df, json_data)
Description: This function preprocesses a DataFrame by filling null values based on the provided JSON data.
Parameters:
- df (DataFrame): The Spark DataFrame to preprocess.
- json_data (dict): The JSON data to use for preprocessing.
Returns:
- DataFrame: The preprocessed DataFrame.
Example:
preprocessed_df = preprocess_dataframe(df, json_data)
preprocessed_df.show()
Output:
+---+------+
| id| name|
+---+------+
| 1| John|
| 2| Jane|
+---+------+
5. convert_to_pandas(grouped_metrics_df)
Description: This function converts a Spark DataFrame to a Pandas DataFrame and adds a UUID column.
Parameters:
- grouped_metrics_df (DataFrame): The Spark DataFrame to convert.
Returns:
- DataFrame: The resulting Pandas DataFrame.
Example:
pandas_df = convert_to_pandas(preprocessed_df)
print(pandas_df)
Output:
id name Id
0 1 John 0a539f3c... (UUID)
1 2 Jane 1d2e4f5a... (UUID)
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyspark-json-loader-0.1.5.tar.gz.
File metadata
- Download URL: pyspark-json-loader-0.1.5.tar.gz
- Upload date:
- Size: 3.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd901bb08eea0a62335b8ebc086c6f49f94980730363a361294aac213ef38750
|
|
| MD5 |
76a14be79c3d8d2882798f3a20e658df
|
|
| BLAKE2b-256 |
0ae46ba9611839b1821f870c493af9da7464c24c01a44a2de632b337912fd064
|
File details
Details for the file pyspark_json_loader-0.1.5-py3-none-any.whl.
File metadata
- Download URL: pyspark_json_loader-0.1.5-py3-none-any.whl
- Upload date:
- Size: 3.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce948056664642907d5bfd8cc4d06ff0fca8198bbfb1505a0cb4936e3986bbb6
|
|
| MD5 |
2d2712454c9e17a95195461879d87e75
|
|
| BLAKE2b-256 |
05e76618d0d20fcd237aeb0cfcb43106cae0e9bd213c6693782b74621320e4c9
|