Эксперимент MLflow
Источник данных Spark для экспериментов MLflow теперь предоставляет стандартный API для загрузки данных запуска экспериментов MLflow. Вы можете загрузить данные из эксперимента записной книжки либо использовать имя или идентификатор эксперимента MLflow.
Requirements
Databricks Runtime 6.0 ML или более поздней версии.
Загрузка данных из эксперимента записной книжки
Чтобы загрузить данные из эксперимента записной книжки, используйте load()
.
Python
df = spark.read.format("mlflow-experiment").load()
display(df)
Scala
val df = spark.read.format("mlflow-experiment").load()
display(df)
Загрузка данных с использованием идентификаторов экспериментов
Чтобы загрузить данные из одного или нескольких экспериментов рабочей области, укажите идентификаторы экспериментов, как показано ниже.
Python
df = spark.read.format("mlflow-experiment").load("3270527066281272")
display(df)
Scala
val df = spark.read.format("mlflow-experiment").load("3270527066281272,953590262154175")
display(df)
Загрузка данных с использованием имени эксперимента
Можно также передать имя эксперимента в метод load()
.
Python
expId = mlflow.get_experiment_by_name("/Shared/diabetes_experiment/").experiment_id
df = spark.read.format("mlflow-experiment").load(expId)
display(df)
Scala
val expId = mlflow.getExperimentByName("/Shared/diabetes_experiment/").get.getExperimentId
val df = spark.read.format("mlflow-experiment").load(expId)
display(df)
Фильтрация данных на основе метрик и параметров
В примерах в этом разделе показано, как фильтровать данные после их загрузки из эксперимента.
Python
df = spark.read.format("mlflow-experiment").load("3270527066281272")
filtered_df = df.filter("metrics.loss < 0.01 AND params.learning_rate > '0.001'")
display(filtered_df)
Scala
val df = spark.read.format("mlflow-experiment").load("3270527066281272")
val filtered_df = df.filter("metrics.loss < 1.85 AND params.num_epochs > '30'")
display(filtered_df)
Схема
Схема объекта DataFrame, возвращаемого источником:
root
|-- run_id: string
|-- experiment_id: string
|-- metrics: map
| |-- key: string
| |-- value: double
|-- params: map
| |-- key: string
| |-- value: string
|-- tags: map
| |-- key: string
| |-- value: string
|-- start_time: timestamp
|-- end_time: timestamp
|-- status: string
|-- artifact_uri: string