Recipes #

This page lists usage examples for performing various operations with recipes through Dataiku Python API. In all examples, project is a dataikuapi.dss.project.DSSProject handle, obtained using client.get_project() or client.get_default_project()

Basic operations #

Listing recipes #

recipes = project.list_recipes()
# Returns a list of DSSRecipeListItem

for recipe in recipes:
        # Quick access to main information in the recipe list item
        print("Name: %s" % recipe.name)
        print("Type: %s" % recipe.type)
        print("Tags: %s" % recipe.tags) # Returns a list of strings

        # You can also use the list item as a dict of all available recipe information
        print("Raw: %s" % recipe)

Deleting a recipe #

recipe = project.get_recipe('myrecipe')
recipe.delete()

Modifying tags for a recipe #

recipe = project.get_recipe('myrecipe')
settings = dataset.get_settings()

print("Current tags are %s" % settings.tags)

# Change the tags
settings.tags = ["newtag1", "newtag2"]

# If we changed the settings, we must save
settings.save()

Recipe creation #

Please see Flow creation and management

Recipe status #

You can compute the status of the recipe, which also provides you with the engine information.

Find the engine used to run a recipe #

recipe = project.get_recipe("myrecipe")
status = recipe.get_status()
print(status.get_selected_engine_details())

Check if a recipe is valid #

get_status() calls the validation code of the recipe

recipe = project.get_recipe("myrecipe")
status = recipe.get_status()
print(status.get_selected_engine_details())

Find the engines for all recipes of a certain type #

This example shows how to filter a list, obtain DSSRecipe objects for the list items, and getting their status

for list_item in project.list_recipes():
        if list_item.type == "grouping":
                recipe = list_item.to_recipe()
                engine = recipe.get_status().get_selected_engine_details()["type"]
                print("Recipe %s uses engine %s" % (recipe.name, engine))

Recipe settings #

When you use get_settings() on a recipe, you receive a settings object whose class depends on the recipe type. Please see below for the possible types.

Checking if a recipe uses a particular dataset as input #

recipe = project.get_recipe("myrecipe")
settings = recipe.get_settings()
print("Recipe %s uses input:%s" % (recipe.name, settings.has_input("mydataset"))

Replacing an input of a recipe #

recipe = project.get_recipe("myrecipe")
settings = recipe.get_settings()

settings.replace_input("old_input", "new_input")
settings.save()

Setting the code env of a code recipe #

recipe = project.get_recipe("myrecipe")
settings = recipe.get_settings()

# Use this to set the recipe to inherit the project's code env
settings.set_code_env(inherit=True)

# Use this to set the recipe to use a specific code env
settings.set_code_env(code_env="myenv")

settings.save()

Reference documentation #

List and status #

dataikuapi.dss.recipe.DSSRecipe (client, ...)

A handle to an existing recipe on the DSS instance.

dataikuapi.dss.recipe.DSSRecipeListItem (...)

An item in a list of recipes.

dataikuapi.dss.recipe.DSSRecipeStatus (...)

Status of a recipe.

dataikuapi.dss.recipe.RequiredSchemaUpdates (...)

Handle on a set of required updates to the schema of the outputs of a recipe.

Settings #

dataikuapi.dss.recipe.DSSRecipeSettings (...)

Settings of a recipe.

dataikuapi.dss.recipe.DSSRecipeDefinitionAndPayload (...)

Settings of a recipe.

dataikuapi.dss.recipe.CodeRecipeSettings (...)

Settings of a code recipe.

dataikuapi.dss.recipe.SyncRecipeSettings (...)

Settings of a Sync recipe.

dataikuapi.dss.recipe.PrepareRecipeSettings (...)

Settings of a Prepare recipe.

dataikuapi.dss.recipe.SamplingRecipeSettings (...)

Settings of a sampling recipe.

dataikuapi.dss.recipe.GroupingRecipeSettings (...)

Settings of a grouping recipe.

dataikuapi.dss.recipe.SortRecipeSettings (...)

Settings of a Sort recipe.

dataikuapi.dss.recipe.TopNRecipeSettings (...)

Settings of a TopN recipe.

dataikuapi.dss.recipe.DistinctRecipeSettings (...)

Settings of a Distinct recipe.

dataikuapi.dss.recipe.PivotRecipeSettings (...)

Settings of a Pivot recipe.

dataikuapi.dss.recipe.WindowRecipeSettings (...)

Settings of a Window recipe.

dataikuapi.dss.recipe.JoinRecipeSettings (...)

Settings of a join recipe.

dataikuapi.dss.recipe.DownloadRecipeSettings (...)

Settings of a download recipe.

dataikuapi.dss.recipe.SplitRecipeSettings (...)

Settings of a split recipe.

dataikuapi.dss.recipe.StackRecipeSettings (...)

Settings of a stack recipe.

Creation #

dataikuapi.dss.recipe.DSSRecipeCreator (type, ...)

Helper to create new recipes.

dataikuapi.dss.recipe.SingleOutputRecipeCreator (...)

Create a recipe that has a single output.

dataikuapi.dss.recipe.VirtualInputsSingleOutputRecipeCreator (...)

Create a recipe that has a single output and several inputs.

dataikuapi.dss.recipe.CodeRecipeCreator (...)

Create a recipe running a script.

dataikuapi.dss.recipe.PythonRecipeCreator (...)

Create a Python recipe.

dataikuapi.dss.recipe.SQLQueryRecipeCreator (...)

Create a SQL query recipe.

dataikuapi.dss.recipe.PrepareRecipeCreator (...)

Create a Prepare recipe

dataikuapi.dss.recipe.SyncRecipeCreator (...)

Create a Sync recipe

dataikuapi.dss.recipe.SamplingRecipeCreator (...)

Create a Sample/Filter recipe

dataikuapi.dss.recipe.DistinctRecipeCreator (...)

Create a Distinct recipe

dataikuapi.dss.recipe.GroupingRecipeCreator (...)

Create a Group recipe.

dataikuapi.dss.recipe.PivotRecipeCreator (...)

Create a Pivot recipe

dataikuapi.dss.recipe.SortRecipeCreator (...)

Create a Sort recipe

dataikuapi.dss.recipe.TopNRecipeCreator (...)

Create a TopN recipe

dataikuapi.dss.recipe.WindowRecipeCreator (...)

Create a Window recipe

dataikuapi.dss.recipe.JoinRecipeCreator (...)

Create a Join recipe.

dataikuapi.dss.recipe.FuzzyJoinRecipeCreator (...)

Create a FuzzyJoin recipe

dataikuapi.dss.recipe.GeoJoinRecipeCreator (...)

Create a GeoJoin recipe

dataikuapi.dss.recipe.SplitRecipeCreator (...)

Create a Split recipe

dataikuapi.dss.recipe.StackRecipeCreator (...)

Create a Stack recipe

dataikuapi.dss.recipe.DownloadRecipeCreator (...)

Create a Download recipe

dataikuapi.dss.recipe.PredictionScoringRecipeCreator (...)

Create a new Prediction scoring recipe.

dataikuapi.dss.recipe.ClusteringScoringRecipeCreator (...)

Create a new Clustering scoring recipe,.

dataikuapi.dss.recipe.EvaluationRecipeCreator (...)

Create a new Evaluate recipe.

dataikuapi.dss.recipe.StandaloneEvaluationRecipeCreator (...)

Create a new Standalone Evaluate recipe.

dataikuapi.dss.recipe.ContinuousSyncRecipeCreator (...)

Create a continuous Sync recipe

Utilities #

dataikuapi.dss.utils.DSSComputedColumn ()

dataikuapi.dss.utils.DSSFilter ()

Helper class to build filter objects for use in visual recipes.

dataikuapi.dss.utils.DSSFilterOperator (value)

An enumeration.