by Anonymous » 01 Jul 2025, 13:09
Betrachten Sie das Modell, das in diesem Exempl in Kedros Dokumentation trainiert wird. < /p>
Code: Select all
from typing import Any, Dict
from kedro.pipeline import node, pipeline
from pyspark.ml.classification import RandomForestClassifier
from pyspark.sql import DataFrame
def train_model(training_data: DataFrame) -> RandomForestClassifier:
"""Node for training a random forest model to classify the data."""
classifier = RandomForestClassifier(numTrees=10)
return classifier.fit(training_data)
def predict(model: RandomForestClassifier, testing_data: DataFrame) -> DataFrame:
"""Node for making predictions given a pre-trained model and a testing dataset."""
predictions = model.transform(testing_data)
return predictions
def create_pipeline(**kwargs) -> Pipeline:
return pipeline(
[
node(train_model, inputs=["training_data"], outputs="example_classifier"),
node(
predict,
inputs=dict(model="example_classifier", testing_data="testing_data"),
outputs="example_predictions",
),
]
)
< /code>
Ich möchte mein vorgebildetes Modell nicht verlieren und es als PYSPARK-Pipelinemodel speichern, aber ich konnte in Kedro-Datensatz keine geeignete Datenstelle dafür finden. Normalerweise würde ich so etwas wie folgt machen: < /p>
save_path = "path/to/save/pipeline_model"
pipeline_model.save(save_path)
< /code>
Aber da ich Kedro benutze, möchte ich keine IO außerhalb meines Katalogs haben. Ist dies ein unterstützter Anwendungsfall oder müsste ich meine eigenen Daten benutzerdefinierten Kedrodataset
implementieren, um dies zu erreichen?
Betrachten Sie das Modell, das in diesem Exempl in Kedros Dokumentation trainiert wird. < /p>
[code]from typing import Any, Dict
from kedro.pipeline import node, pipeline
from pyspark.ml.classification import RandomForestClassifier
from pyspark.sql import DataFrame
def train_model(training_data: DataFrame) -> RandomForestClassifier:
"""Node for training a random forest model to classify the data."""
classifier = RandomForestClassifier(numTrees=10)
return classifier.fit(training_data)
def predict(model: RandomForestClassifier, testing_data: DataFrame) -> DataFrame:
"""Node for making predictions given a pre-trained model and a testing dataset."""
predictions = model.transform(testing_data)
return predictions
def create_pipeline(**kwargs) -> Pipeline:
return pipeline(
[
node(train_model, inputs=["training_data"], outputs="example_classifier"),
node(
predict,
inputs=dict(model="example_classifier", testing_data="testing_data"),
outputs="example_predictions",
),
]
)
< /code>
Ich möchte mein vorgebildetes Modell nicht verlieren und es als PYSPARK-Pipelinemodel speichern, aber ich konnte in Kedro-Datensatz keine geeignete Datenstelle dafür finden. Normalerweise würde ich so etwas wie folgt machen: < /p>
save_path = "path/to/save/pipeline_model"
pipeline_model.save(save_path)
< /code>
Aber da ich Kedro benutze, möchte ich keine IO außerhalb meines Katalogs haben. Ist dies ein unterstützter Anwendungsfall oder müsste ich meine eigenen Daten benutzerdefinierten Kedrodataset [/code] implementieren, um dies zu erreichen?