Dela via


DatabricksStep Klass

Skapar ett Azure ML Pipeline-steg för att lägga till en DataBricks-notebook-fil, Python-skript eller JAR som en nod.

Ett exempel på hur du använder DatabricksStep finns i notebook-filen https://aka.ms/pl-databricks.

Skapa ett Azure ML Pipeline-steg för att lägga till en DataBricks-notebook-fil, Python-skript eller JAR som en nod.

Ett exempel på hur du använder DatabricksStep finns i notebook-filen https://aka.ms/pl-databricks.

:p aram python_script_name:[Required] Namnet på ett Python-skript i förhållande till source_directory. Om skriptet tar indata och utdata skickas de till skriptet som parametrar. Om python_script_name anges måste det source_directory också vara det.

Ange exakt en av notebook_path, python_script_path, python_script_nameeller main_class_name.

Om du anger ett DataReference-objekt som indata med data_reference_name=input1 och ett PipelineData-objekt som utdata med namn=output1, skickas indata och utdata till skriptet som parametrar. Så här ser de ut och du måste parsa argumenten i skriptet för att komma åt sökvägarna för varje indata och utdata: "-input1","wasbs://test@storagename.blob.core.windows.net/test","-output1", "wasbs://test@storagename.blob.core.windows.net/b3e26de1-87a4-494d-a20f-1988d22b81a2/output1"

Dessutom är följande parametrar tillgängliga i skriptet:

  • AZUREML_RUN_TOKEN: AML-token för autentisering med Azure Machine Learning.
  • AZUREML_RUN_TOKEN_EXPIRY: Förfallotid för AML-token.
  • AZUREML_RUN_ID: Kör-ID för Azure Machine Learning för den här körningen.
  • AZUREML_ARM_SUBSCRIPTION: Azure-prenumeration för din AML-arbetsyta.
  • AZUREML_ARM_RESOURCEGROUP: Azure-resursgrupp för din Azure Machine Learning-arbetsyta.
  • AZUREML_ARM_WORKSPACE_NAME: Namnet på din Azure Machine Learning-arbetsyta.
  • AZUREML_ARM_PROJECT_NAME: Namnet på ditt Azure Machine Learning-experiment.
  • AZUREML_SERVICE_ENDPOINT: Slutpunkts-URL för AML-tjänster.
  • AZUREML_WORKSPACE_ID: ID för din Azure Machine Learning-arbetsyta.
  • AZUREML_EXPERIMENT_ID: ID för ditt Azure Machine Learning-experiment.
  • AZUREML_SCRIPT_DIRECTORY_NAME: Katalogsökväg i DBFS där source_directory har kopierats.
  (This parameter is only populated when `python_script_name` is used.  See more details below.)

När du kör ett Python-skript från den lokala datorn på Databricks med hjälp av DatabricksStep-parametrar och source_directorypython_script_namekopieras source_directory till DBFS och katalogsökvägen i DBFS skickas som en parameter till skriptet när körningen påbörjas. Den här parametern är märkt med –AZUREML_SCRIPT_DIRECTORY_NAME. Du måste prefixet med strängen "dbfs:/" eller "/dbfs/" för att komma åt katalogen i DBFS.

Arv
azureml.pipeline.core._databricks_step_base._DatabricksStepBase
DatabricksStep

Konstruktor

DatabricksStep(name, inputs=None, outputs=None, existing_cluster_id=None, spark_version=None, node_type=None, instance_pool_id=None, num_workers=None, min_workers=None, max_workers=None, spark_env_variables=None, spark_conf=None, init_scripts=None, cluster_log_dbfs_path=None, notebook_path=None, notebook_params=None, python_script_path=None, python_script_params=None, main_class_name=None, jar_params=None, python_script_name=None, source_directory=None, hash_paths=None, run_name=None, timeout_seconds=None, runconfig=None, maven_libraries=None, pypi_libraries=None, egg_libraries=None, jar_libraries=None, rcran_libraries=None, compute_target=None, allow_reuse=True, version=None, permit_cluster_restart=None)

Parametrar

Name Description
name
Obligatorisk
str

[Krävs] Namnet på steget.

inputs

En lista över indataanslutningar för data som används i det här steget. Hämta detta i anteckningsboken med dbutils.widgets.get("input_name"). Kan vara DataReference eller PipelineData. DataReference representerar en befintlig datamängd i ett datalager. I princip är detta en sökväg i ett datalager. DatabricksStep stöder datalager som kapslar in DBFS, Azure Blob eller ADLS v1. PipelineData representerar mellanliggande data som produceras av ett annat steg i en pipeline.

Standardvärde: None
outputs

En lista över portdefinitioner för utdata som genereras av det här steget. Hämta detta i anteckningsboken med dbutils.widgets.get("output_name"). Bör vara PipelineData.

Standardvärde: None
existing_cluster_id
str

Ett kluster-ID för ett befintligt interaktivt kluster på Databricks-arbetsytan. Om du skickar den här parametern kan du inte skicka någon av följande parametrar som används för att skapa ett nytt kluster:

  • spark_version
  • node_type
  • instance_pool_id
  • num_workers
  • min_workers
  • max_workers
  • spark_env_variables
  • spark_conf

Obs! För att skapa ett nytt jobbkluster måste du skicka parametrarna ovan. Du kan skicka dessa parametrar direkt eller skicka dem som en del av RunConfiguration-objektet med hjälp av parametern runconfig. Om du skickar dessa parametrar direkt och via RunConfiguration uppstår ett fel.

Standardvärde: None
spark_version
str

Versionen av spark för Databricks kör klustret, till exempel: "10.4.x-scala2.12". Mer information finns i beskrivningen för parametern existing_cluster_id .

Standardvärde: None
node_type
str

[Krävs] Nodtyperna för virtuella Azure-datorer för Databricks kör klustret, till exempel "Standard_D3_v2". Ange antingen node_type eller instance_pool_id. Mer information finns i beskrivningen för parametern existing_cluster_id .

Standardvärde: None
instance_pool_id
str

[Krävs] Det instanspools-ID som klustret måste kopplas till. Ange antingen node_type eller instance_pool_id. Mer information finns i beskrivningen för parametern existing_cluster_id .

Standardvärde: None
num_workers
int

[Krävs] Det statiska antalet arbetare för Databricks kör klustret. Du måste ange antingen num_workers eller både min_workers och max_workers. Mer information finns i beskrivningen för parametern existing_cluster_id .

Standardvärde: None
min_workers
int

[Krävs] Minsta antal arbetare som ska användas för automatisk skalning av Databricks-körklustret. Du måste ange antingen num_workers eller både min_workers och max_workers. Mer information finns i beskrivningen för parametern existing_cluster_id .

Standardvärde: None
max_workers
int

[Krävs] Det maximala antalet arbetare som ska användas för automatisk skalning av Databricks-körklustret. Du måste ange antingen num_workers eller både min_workers och max_workers. Mer information finns i beskrivningen för parametern existing_cluster_id .

Standardvärde: None
spark_env_variables

Spark-miljövariablerna för Databricks kör klustret. Mer information finns i beskrivningen för parametern existing_cluster_id .

Standardvärde: None
spark_conf

Spark-konfigurationen för Databricks kör klustret. Mer information finns i beskrivningen för parametern existing_cluster_id .

Standardvärde: None
init_scripts
[str]

Inaktuellt. Databricks meddelade att init-skriptet som lagras i DBFS slutar fungera efter den 1 december 2023. Du kan åtgärda problemet genom att 1) använda globala init-skript i databricks följande https://learn.microsoft.com/azure/databricks/init-scripts/global 2) kommentera ut raden med init_scripts i ditt AzureML-databricks-steg.

Standardvärde: None
cluster_log_dbfs_path
str

DBFS-sökvägarna där klusterloggar ska levereras.

Standardvärde: None
notebook_path
str

[Krävs] Sökvägen till notebook-filen i Databricks-instansen. Den här klassen tillåter fyra sätt att ange att koden ska köras på Databricks-klustret.

  1. Om du vill köra en notebook-fil som finns på Databricks-arbetsytan använder du: notebook_path=notebook_path, notebook_params={'myparam': 'testparam'}

  2. Om du vill köra ett Python-skript som finns i DBFS använder du: python_script_path=python_script_dbfs_path, python_script_params={'arg1', 'arg2'}

  3. Om du vill köra en JAR som finns i DBFS använder du: main_class_name=main_jar_class_name, jar_params={'arg1', 'arg2'}, jar_libraries=[JarLibrary(jar_library_dbfs_path)]

  4. Om du vill köra ett Python-skript som finns på den lokala datorn använder du: python_script_name=python_script_name, source_directory=source_directory

Ange exakt en av notebook_path, python_script_path, python_script_nameeller main_class_name.

Standardvärde: None
notebook_params

En ordlista med parametrar som ska skickas till notebook-filen. notebook_params är tillgängliga som widgetar. Du kan hämta värdena från dessa widgetar i notebook-filen med hjälp av dbutils.widgets.get("myparam").

Standardvärde: None
python_script_path
str

[Krävs] Sökvägen till Python-skriptet i DBFS. Ange exakt en av notebook_path, python_script_path, python_script_nameeller main_class_name.

Standardvärde: None
python_script_params

Parametrar för Python-skriptet.

Standardvärde: None
main_class_name
str

[Krävs] Namnet på startpunkten i en JAR-modul. Ange exakt en av notebook_path, python_script_path, python_script_nameeller main_class_name.

Standardvärde: None
jar_params

Parametrar för JAR-modulen.

Standardvärde: None
python_script_name
str

[Krävs] Namnet på ett Python-skript i förhållande till source_directory. Om skriptet tar indata och utdata skickas de till skriptet som parametrar. Om python_script_name anges måste det source_directory också vara det.

Ange exakt en av notebook_path, python_script_path, python_script_nameeller main_class_name.

Om du anger ett DataReference-objekt som indata med data_reference_name=input1 och ett PipelineData-objekt som utdata med namn=output1, skickas indata och utdata till skriptet som parametrar. Så här ser de ut och du måste parsa argumenten i skriptet för att komma åt sökvägarna för varje indata och utdata: "-input1","wasbs://test@storagename.blob.core.windows.net/test","-output1", "wasbs://test@storagename.blob.core.windows.net/b3e26de1-87a4-494d-a20f-1988d22b81a2/output1"

Dessutom är följande parametrar tillgängliga i skriptet:

  • AZUREML_RUN_TOKEN: AML-token för autentisering med Azure Machine Learning.
  • AZUREML_RUN_TOKEN_EXPIRY: Förfallotid för AML-token.
  • AZUREML_RUN_ID: Kör-ID för Azure Machine Learning för den här körningen.
  • AZUREML_ARM_SUBSCRIPTION: Azure-prenumeration för din AML-arbetsyta.
  • AZUREML_ARM_RESOURCEGROUP: Azure-resursgrupp för din Azure Machine Learning-arbetsyta.
  • AZUREML_ARM_WORKSPACE_NAME: Namnet på din Azure Machine Learning-arbetsyta.
  • AZUREML_ARM_PROJECT_NAME: Namnet på ditt Azure Machine Learning-experiment.
  • AZUREML_SERVICE_ENDPOINT: Slutpunkts-URL för AML-tjänster.
  • AZUREML_WORKSPACE_ID: ID för din Azure Machine Learning-arbetsyta.
  • AZUREML_EXPERIMENT_ID: ID för ditt Azure Machine Learning-experiment.
  • AZUREML_SCRIPT_DIRECTORY_NAME: Katalogsökväg i DBFS där source_directory har kopierats. (Den här parametern fylls bara i när python_script_name används. Se mer information nedan.)

När du kör ett Python-skript från den lokala datorn på Databricks med hjälp av DatabricksStep-parametrar och source_directorypython_script_namekopieras source_directory till DBFS och katalogsökvägen i DBFS skickas som en parameter till skriptet när körningen påbörjas. Den här parametern är märkt med –AZUREML_SCRIPT_DIRECTORY_NAME. Du måste prefixet med strängen "dbfs:/" eller "/dbfs/" för att komma åt katalogen i DBFS.

Standardvärde: None
source_directory
str

Mappen som innehåller skriptet och andra filer. Om python_script_name anges måste det source_directory också vara det.

Standardvärde: None
hash_paths
[str]

INAKTUELL: behövs inte längre.

En lista över sökvägar till hash när du söker efter ändringar i steginnehållet. Om inga ändringar identifieras återanvänder pipelinen steginnehållet från en tidigare körning. Som standard hashas innehållet source_directory i förutom filer som anges i .amlignore eller .gitignore.

Standardvärde: None
run_name
str

Namnet i Databricks för den här körningen.

Standardvärde: None
timeout_seconds
int

Tidsgränsen för Databricks-körningen.

Standardvärde: None
runconfig

Den runconfig som ska användas.

Obs! Du kan skicka så många bibliotek du vill som beroenden till jobbet med hjälp av följande parametrar: maven_libraries, pypi_libraries, egg_libraries, jar_librarieseller rcran_libraries. Antingen skickar du dessa parametrar direkt med deras motsvarande parametrar eller som en del av RunConfiguration-objektet med hjälp av parametern runconfig , men inte båda.

Standardvärde: None
maven_libraries

Maven-bibliotek som ska användas för Databricks-körningen.

Standardvärde: None
pypi_libraries

PyPi-bibliotek som ska användas för Databricks-körningen.

Standardvärde: None
egg_libraries

Äggbibliotek som ska användas för Databricks-körningen.

Standardvärde: None
jar_libraries

Jar-bibliotek som ska användas för Databricks-körningen.

Standardvärde: None
rcran_libraries

RCran-bibliotek som ska användas för Databricks-körningen.

Standardvärde: None
compute_target

[Krävs] En Azure Databricks-beräkning. Innan du kan använda DatabricksStep för att köra skript eller notebook-filer på en Azure Databricks-arbetsyta måste du lägga till Azure Databricks-arbetsytan som beräkningsmål till din Azure Machine Learning-arbetsyta.

Standardvärde: None
allow_reuse

Anger om steget ska återanvända tidigare resultat när det körs igen med samma inställningar. Återanvändning är aktiverat som standard. Om steginnehållet (skript/beroenden) samt indata och parametrar förblir oförändrade återanvänds utdata från föregående körning av det här steget. När du återanvänder steget, i stället för att skicka jobbet för att beräkna, görs resultaten från den föregående körningen omedelbart tillgängliga för efterföljande steg. Om du använder Azure Machine Learning-datauppsättningar som indata bestäms återanvändning av om datauppsättningens definition har ändrats, inte av om underliggande data har ändrats.

Standardvärde: True
version
str

En valfri versionstagg som anger en funktionsändring för steget.

Standardvärde: None
permit_cluster_restart

Om existing_cluster_id anges anger den här parametern om klustret kan startas om för användarens räkning.

Standardvärde: None
name
Obligatorisk
str

[Krävs] Namnet på steget.

inputs
Obligatorisk

Lista över indataanslutningar för data som förbrukas av det här steget. Hämta detta i notebook-filen med dbutils.widgets.get("input_name"). Kan vara DataReference eller PipelineData. DataReference representerar en befintlig datamängd i ett datalager. Det här är i princip en sökväg i ett datalager. DatabricksStep stöder datalager som kapslar in DBFS, Azure Blob eller ADLS v1. PipelineData representerar mellanliggande data som produceras av ett annat steg i en pipeline.

outputs
Obligatorisk
list[Union[OutputPortBinding, <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset>, PipelineData]]

En lista över portdefinitioner för utdata som genereras av det här steget. Hämta detta i notebook-filen med dbutils.widgets.get("output_name"). Bör vara PipelineData.

existing_cluster_id
Obligatorisk
str

Ett kluster-ID för ett befintligt interaktivt kluster på Databricks-arbetsytan. Om du skickar den här parametern kan du inte skicka någon av följande parametrar som används för att skapa ett nytt kluster:

  • spark_version
  • node_type
  • instance_pool_id
  • num_workers
  • min_workers
  • max_workers
  • spark_env_variables
  • spark_conf

Obs! Om du vill skapa ett nytt jobbkluster måste du skicka ovanstående parametrar. Du kan skicka dessa parametrar direkt eller skicka dem som en del av RunConfiguration-objektet med hjälp av parametern runconfig. Om du skickar dessa parametrar direkt och via RunConfiguration uppstår ett fel.

spark_version
Obligatorisk
str

Versionen av Spark för Databricks kör klustret, till exempel: "10.4.x-scala2.12". Mer information finns i beskrivningen för parametern existing_cluster_id .

node_type
Obligatorisk
str

[Krävs] Nodtyperna för virtuella Azure-datorer för Databricks-körningsklustret, till exempel: "Standard_D3_v2". Ange antingen node_type eller instance_pool_id. Mer information finns i beskrivningen för parametern existing_cluster_id .

instance_pool_id
Obligatorisk
str

[Krävs] Det instanspools-ID som klustret måste kopplas till. Ange antingen node_type eller instance_pool_id. Mer information finns i beskrivningen för parametern existing_cluster_id .

num_workers
Obligatorisk
int

[Krävs] Det statiska antalet arbetare för Databricks-körningsklustret. Du måste ange antingen num_workers eller både min_workers och max_workers.

Mer information finns i beskrivningen för parametern existing_cluster_id .

min_workers
Obligatorisk
int

[Krävs] Minsta antal arbetare som ska användas för automatisk skalning av Databricks-körningsklustret. Du måste ange antingen num_workers eller både min_workers och max_workers.

Mer information finns i beskrivningen för parametern existing_cluster_id .

max_workers
Obligatorisk
int

[Krävs] Det maximala antalet arbetare som ska användas för automatisk skalning av Databricks-körningsklustret. Du måste ange antingen num_workers eller både min_workers och max_workers.

Mer information finns i beskrivningen för parametern existing_cluster_id .

spark_env_variables
Obligatorisk

Spark-miljövariablerna för Databricks kör klustret. Mer information finns i beskrivningen för parametern existing_cluster_id .

spark_conf
Obligatorisk

Spark-konfigurationen för Databricks-körningsklustret. Mer information finns i beskrivningen för parametern existing_cluster_id .

init_scripts
Obligatorisk
[str]

Inaktuellt. Databricks meddelade att init-skriptet som lagras i DBFS kommer att sluta fungera efter 1 dec 2023. Du kan åtgärda problemet genom att 1) använda globala init-skript i databricks efter https://learn.microsoft.com/azure/databricks/init-scripts/global 2) kommentera ut raden med init_scripts i azureML-databricks-steget.

cluster_log_dbfs_path
Obligatorisk
str

DBFS-sökvägarna där klusterloggar ska levereras.

notebook_path
Obligatorisk
str

[Krävs] Sökvägen till notebook-filen i Databricks-instansen. Den här klassen tillåter fyra sätt att ange att koden ska köras på Databricks-klustret.

  1. Om du vill köra en notebook-fil som finns på Databricks-arbetsytan använder du: notebook_path=notebook_path, notebook_params={'myparam': 'testparam'}

  2. Om du vill köra ett Python-skript som finns i DBFS använder du: python_script_path=python_script_dbfs_path, python_script_params={'arg1', 'arg2'}

  3. Om du vill köra en JAR som finns i DBFS använder du: main_class_name=main_jar_class_name, jar_params={'arg1', 'arg2'}, jar_libraries=[JarLibrary(jar_library_dbfs_path)]

  4. Om du vill köra ett Python-skript som finns på den lokala datorn använder du: python_script_name=python_script_name, source_directory=source_directory

Ange exakt en av notebook_path, python_script_path, python_script_nameeller main_class_name.

notebook_params
Obligatorisk

En ordlista med parametrar som ska skickas till notebook-filen. notebook_params är tillgängliga som widgetar. Du kan hämta värdena från dessa widgetar i notebook-filen med hjälp av dbutils.widgets.get("myparam").

python_script_path
Obligatorisk
str

[Krävs] Sökvägen till Python-skriptet i DBFS. Ange exakt en av notebook_path, python_script_path, python_script_nameeller main_class_name.

python_script_params
Obligatorisk

Parametrar för Python-skriptet.

main_class_name
Obligatorisk
str

[Krävs] Namnet på startpunkten i en JAR-modul. Ange exakt en av notebook_path, python_script_path, python_script_nameeller main_class_name.

jar_params
Obligatorisk

Parametrar för JAR-modulen.

source_directory
Obligatorisk
str

Mappen som innehåller skriptet och andra filer. Om python_script_name anges måste det source_directory också vara det.

hash_paths
Obligatorisk
[str]

INAKTUELL: behövs inte längre.

En lista över sökvägar till hash när du söker efter ändringar i steginnehållet. Om inga ändringar identifieras återanvänder pipelinen steginnehållet från en tidigare körning. Som standard hashas innehållet source_directory i förutom filer som anges i .amlignore eller .gitignore.

run_name
Obligatorisk
str

Namnet i Databricks för den här körningen.

timeout_seconds
Obligatorisk
int

Tidsgränsen för Databricks-körningen.

runconfig
Obligatorisk

Den runconfig som ska användas.

Obs! Du kan skicka så många bibliotek du vill som beroenden till jobbet med hjälp av följande parametrar: maven_libraries, pypi_libraries, egg_libraries, jar_librarieseller rcran_libraries. Antingen skickar du dessa parametrar direkt med deras motsvarande parametrar eller som en del av RunConfiguration-objektet med hjälp av parametern runconfig , men inte båda.

maven_libraries
Obligatorisk
list[<xref:azureml.core.runconfig.MavenLibrary>]

Maven-bibliotek som ska användas för Databricks-körningen. Mer information om specifikationen för Maven-bibliotek finns i help(azureml.core.runconfig.MavenLibrary).

pypi_libraries
Obligatorisk
list[<xref:azureml.core.runconfig.PyPiLibrary>]

PyPi-bibliotek som ska användas för Databricks-körningen. Mer information om specifikationen för PyPi-bibliotek finns i help(azureml.core.runconfig.PyPiLibrary).

egg_libraries
Obligatorisk
list[<xref:azureml.core.runconfig.EggLibrary>]

Äggbibliotek som ska användas för Databricks-körningen. Mer information om specifikationen av Äggbibliotek finns i help(azureml.core.runconfig.EggLibrary).

jar_libraries
Obligatorisk
list[<xref:azureml.core.runconfig.JarLibrary>]

Jar-bibliotek som ska användas för Databricks-körningen. Mer information om specifikationen för Jar-bibliotek finns i help(azureml.core.runconfig.JarLibrary).

rcran_libraries
Obligatorisk
list[<xref:azureml.core.runconfig.RCranLibrary>]

RCran-bibliotek som ska användas för Databricks-körningen. Mer information om specifikationen för RCran-bibliotek finns i help(azureml.core.runconfig.RCranLibrary).

compute_target
Obligatorisk

[Krävs] Azure Databricks-beräkning. Innan du kan använda DatabricksStep för att köra skript eller notebook-filer på en Azure Databricks-arbetsyta måste du lägga till Azure Databricks-arbetsytan som beräkningsmål till din Azure Machine Learning-arbetsyta.

allow_reuse
Obligatorisk

Anger om steget ska återanvända tidigare resultat när det körs igen med samma inställningar. Återanvändning är aktiverat som standard. Om steginnehållet (skript/beroenden) samt indata och parametrar förblir oförändrade återanvänds utdata från föregående körning av det här steget. När du återanvänder steget, i stället för att skicka jobbet för att beräkna, görs resultaten från den föregående körningen omedelbart tillgängliga för efterföljande steg. Om du använder Azure Machine Learning-datauppsättningar som indata bestäms återanvändning av om datauppsättningens definition har ändrats, inte av om underliggande data har ändrats.

version
Obligatorisk
str

En valfri versionstagg som anger en funktionsändring för steget.

permit_cluster_restart
Obligatorisk

Om existing_cluster_id anges anger den här parametern om klustret kan startas om för användarens räkning.

Metoder

create_node

Skapa en nod från Steget Databricks och lägg till den i den angivna grafen.

Den här metoden är inte avsedd att användas direkt. När en pipeline instansieras med det här steget skickar Azure ML automatiskt de parametrar som krävs via den här metoden så att steget kan läggas till i ett pipelinediagram som representerar arbetsflödet.

create_node

Skapa en nod från Steget Databricks och lägg till den i den angivna grafen.

Den här metoden är inte avsedd att användas direkt. När en pipeline instansieras med det här steget skickar Azure ML automatiskt de parametrar som krävs via den här metoden så att steget kan läggas till i ett pipelinediagram som representerar arbetsflödet.

create_node(graph, default_datastore, context)

Parametrar

Name Description
graph
Obligatorisk

Grafobjektet som noden ska läggas till i.

default_datastore
Obligatorisk

Standarddatalager.

context
Obligatorisk
<xref:azureml.pipeline.core._GraphContext>

Grafkontexten.

Returer

Typ Description

Den skapade noden.