blob: c0224c3b46efe38488f0123d32ba030e9299f42c [file]
import pandas as pd
import xgboost
def preprocessed_df(raw_df: pd.DataFrame) -> pd.DataFrame:
"""preprocess raw data"""
return ...
def model(preprocessed_df: pd.DataFrame) -> xgboost.XGBModel:
"""Train model on preprocessed data"""
return ...
if __name__ == "__main__":
import __main__
from hamilton import driver
from hamilton.io.materialization import from_, to
data_path = "..."
model_dir = "..."
materializers = [
from_.parquet(target="raw_df", path=data_path),
to.json(
id="model__json", # name of the DataSaver node
dependencies=["model"],
path=f"{model_dir}/model.json",
),
]
dr = (
driver.Builder()
.with_modules(__main__)
.with_materializers(*materializers)
.build()
)
results = dr.execute(["model", "model__json"])
# results["model"] <- the model
# results["model__json"] <- metadata from saving the model