Packages for fast dataflow and workflow processing
Project description
MLFastFlow
A Python package for fast dataflow and workflow processing.
Installation
pip install mlfastflow
Features
- Easy-to-use data sourcing with the Sourcing class
- Flexible vector search capabilities
- Optimized for data processing workflows
Quick Start
from mlfastflow import Sourcing
# Create a sourcing instance
sourcing = Sourcing(
query_df=your_query_dataframe,
db_df=your_database_dataframe,
columns_for_sourcing=["column1", "column2"],
label="your_label"
)
# Process your data
sourced_db_df_without_label, sourced_db_df_with_label = (
sourcing.sourcing()
)
BigQuery Integration
MLFastFlow provides a powerful BigQueryClient class for seamless integration with Google BigQuery and Google Cloud Storage (GCS).
Initialization
from mlfastflow import BigQueryClient
# Initialize the client with your GCP credentials
bq_client = BigQueryClient(
project_id="your-gcp-project-id",
dataset_id="your_dataset",
key_file="/path/to/your/service-account-key.json"
)
Running SQL Queries
# Execute a SQL query and get results as a pandas DataFrame
df = bq_client.sql2df("SELECT * FROM your_dataset.your_table LIMIT 10")
# Or simply run a query without returning results
bq_client.run_sql("CREATE TABLE your_dataset.new_table AS SELECT * FROM your_dataset.source_table")
DataFrame to BigQuery
import pandas as pd
# Create a sample DataFrame
df = pd.DataFrame({
'id': [1, 2, 3],
'name': ['Alice', 'Bob', 'Charlie'],
'value': [100, 200, 300]
})
# Upload DataFrame to BigQuery
bq_client.df2table(
df=df,
table_id="your_table_name",
if_exists="fail" # Options: 'fail', 'append'
)
BigQuery to Google Cloud Storage
# Export query results to GCS as Parquet files (default)
bq_client.sql2gcs(
sql="SELECT * FROM your_dataset.your_table",
destination_uri="gs://your-bucket/path/to/export/",
destination_format="PARQUET" # Options: 'PARQUET', 'CSV', 'JSON', 'AVRO'
)
Google Cloud Storage to BigQuery
# Load data from GCS to BigQuery
bq_client.gcs2table(
gcs_uri="gs://your-bucket/path/to/data/*.parquet",
table_id="your_destination_table",
write_disposition="WRITE_TRUNCATE", # Options: 'WRITE_TRUNCATE', 'WRITE_APPEND', 'WRITE_EMPTY'
source_format="PARQUET" # Options: 'PARQUET', 'CSV', 'JSON', 'AVRO', 'ORC'
)
GCS Folder Management
# Create a folder in GCS
bq_client.create_gcs_folder("gs://your-bucket/new-folder/")
# Delete a folder and all its contents
success, deleted_count = bq_client.delete_gcs_folder(
gcs_folder_path="gs://your-bucket/folder-to-delete/",
dry_run=True # Set to False to actually delete
)
print(f"Would delete {deleted_count} files" if success else "Error occurred")
Resource Management
# Explicitly close the client when done to free resources
bq_client.close()
del bq_client
bq_client = None
For more detailed examples and advanced usage, refer to the documentation.
License
MIT
Author
Xileven
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
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 mlfastflow-0.1.19.tar.gz.
File metadata
- Download URL: mlfastflow-0.1.19.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a7535c64e0ee9e074db1800bd9f0ea24444a4fe797bc9f87cd6fb74d706df93
|
|
| MD5 |
306556cc85cec70454dc839c61c3ad5b
|
|
| BLAKE2b-256 |
39748ff7ce8f110029760c00a65954be011e8e4267aa6e4b6bfe3890790499b8
|
File details
Details for the file mlfastflow-0.1.19-py3-none-any.whl.
File metadata
- Download URL: mlfastflow-0.1.19-py3-none-any.whl
- Upload date:
- Size: 21.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bccc390bd211ee32c50257bec9a64bc26904e2731f8c262ac95492c8529a3c3
|
|
| MD5 |
1e702d6e7c5c06ead9138993d9c8b824
|
|
| BLAKE2b-256 |
5d29a5f83ae78c003eb573c9cc662f4ba15329bef1f28416ba3815771fb2928e
|