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>
Я хотел бы не терять свою предварительно обученную модель и сохранять ее в качестве трубопровода Pyspark, но я не смог найти подходящий набор данных для этого в документации Kedro Dataset < /p>
Обычно я бы сделал что-то подобное: < /p>
< /p> save_path = "path/to/save/pipeline_model"
pipeline_model.save(save_path)
< /code>
Но как я использую Kedro, я не хочу иметь IO за пределами моего каталога. Это поддерживаемый вариант использования, или мне придется реализовать свои собственные данные пользовательские Kedrodataset
Рассмотрим модель, которая обучена этому экзамену в документации Кедро < /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> Я хотел бы не терять свою предварительно обученную модель и сохранять ее в качестве трубопровода Pyspark, но я не смог найти подходящий набор данных для этого в документации Kedro Dataset < /p> Обычно я бы сделал что-то подобное: < /p> < /p> save_path = "path/to/save/pipeline_model" pipeline_model.save(save_path) < /code> Но как я использую Kedro, я не хочу иметь IO за пределами моего каталога. Это поддерживаемый вариант использования, или мне придется реализовать свои собственные данные пользовательские Kedrodataset [/code] для достижения этого?
Я использую PySpark в Azure Databricks. Я использовал алгоритм ALS библиотеки Sparks MLlib для прогнозирования рейтингов фильмов, который успешно работает. Однако я пытаюсь добавить фрейм данных, состоящий из моих оценок для 10 случайно выбранных...
Мои основные входные данные — это список проверок (в файле csv), которые мне нужно оценить на огромном наборе данных.
В моем основном узле я анализирую файл csv и для каждой строки получаю соответствующие данные из каталога, извлекаю данные, провожу...
Я использую Kedro для запуска конвейеров для нескольких моделей, каждая из которых генерирует CSV-файл с одной и той же схемой. Однако мне нужно объединить каждый из сгенерированных файлов CSV в один и выполнить некоторую постобработку, которая и...