def test_mleap_module_model_save_with_relative_path_and_valid_sample_input_produces_mleap_flavor( spark_model_iris): with TempDir(chdr=True) as tmp: model_path = os.path.basename(tmp.path("model")) mlflow_model = Model() mleap.save_model(spark_model=spark_model_iris.model, path=model_path, sample_input=spark_model_iris.spark_df, mlflow_model=mlflow_model) assert mleap.FLAVOR_NAME in mlflow_model.flavors config_path = os.path.join(model_path, "MLmodel") assert os.path.exists(config_path) config = Model.load(config_path) assert mleap.FLAVOR_NAME in config.flavors
def test_mleap_output_json_format(spark_model_iris, model_path): mlflow_model = Model() mleap.save_model(spark_model=spark_model_iris.model, path=model_path, sample_input=spark_model_iris.spark_df, mlflow_model=mlflow_model) mleap_conf = mlflow_model.flavors[mleap.FLAVOR_NAME] schema_path_sub = mleap_conf["input_schema"] schema_path_full = os.path.join(model_path, schema_path_sub) with open(schema_path_full, "r") as f: json_schema = json.load(f) assert "fields" in json_schema.keys() assert len(json_schema["fields"]) > 0 assert type(json_schema["fields"][0]) == dict assert "name" in json_schema["fields"][0]
def test_mleap_module_model_save_with_absolute_path_and_valid_sample_input_produces_mleap_flavor( spark_model_iris, model_path): model_path = os.path.abspath(model_path) mlflow_model = Model() mleap.save_model( spark_model=spark_model_iris.model, path=model_path, sample_input=spark_model_iris.spark_df, mlflow_model=mlflow_model, ) assert mleap.FLAVOR_NAME in mlflow_model.flavors config_path = os.path.join(model_path, "MLmodel") assert os.path.exists(config_path) config = Model.load(config_path) assert mleap.FLAVOR_NAME in config.flavors