다음을 통해 공유


작업에서 매개 변수 값 액세스

이 문서에서는 Databricks Notebook, Python 스크립트 및 SQL 파일을 포함하여 태스크의 코드에서 매개 변수 값에 액세스하는 방법을 설명합니다.

매개 변수에는 사용자 정의 매개 변수, 업스트림 작업의 값 출력 및 작업에서 생성된 메타데이터 값이 포함됩니다. 매개 변수화 작업을 참조하세요.

세부 정보는 작업 유형따라 다르지만 소스 코드에서 매개 변수 값을 참조하는 데 사용되는 네 가지 일반적인 메서드가 있습니다.

이러한 각 경우에서 매개 변수의 키를 참조하여 해당 값에 액세스합니다. 키는 매개 변수의 이름이라고도 합니다.

노트북의 코드에서 dbutils을 사용하세요

작업에서 실행되는 Notebook 코드는 dbutils 라이브러리를 사용하여 매개 변수 값에 액세스할 수 있습니다. 다음 예제에서는 Python에서 dbutils 사용하여 Notebook 작업에 전달되는 year_param 작업 매개 변수의 값을 가져오는 방법을 보여 있습니다.

# Retrieve a job-level parameter
year_value = dbutils.widgets.get("year_param")

# Use the value in your code
display(babynames.filter(babynames.Year == year_value))

매개 변수는 이름으로 액세스됩니다. 태스크 매개 변수와 작업 매개 변수가 동일한 이름을 가지고 있는 경우, 작업 매개 변수가 가져옵니다.

위의 코드는 매개 변수가 독립 실행형 Notebook으로 전송되지 않으므로 작업의 일부가 아닌 독립 실행형 Notebook에서 실행할 때 오류를 생성합니다. 다음 코드를 사용하여 year_param 매개 변수에 대한 기본값을 설정할 수 있습니다.

# Set a default (for when not running in a job)
dbutils.widgets.text("year_param", "2012", "Year Parameter")

# Retrieve a job-level parameter (will use default if it doesn't exist)
year_value = dbutils.widgets.get("year_param")

# Use the value in your code
display(babynames.filter(babynames.Year == year_value))

이는 작업 외부에서 테스트하는 데 유용하지만 작업 또는 작업 매개 변수가 올바르게 설정되지 않은 경우 숨기는 단점도 있습니다.

SQL Notebook에서 명명된 매개 변수 사용

Notebook 작업에서 SQL을 실행하는 경우 명명된 매개 변수 구문을 사용하여 작업 매개 변수에 액세스할 수 있습니다. 예를 들어 year_param이라는 작업 매개 변수에 액세스하려면 쿼리에서 :year_param 사용하여 해당 값을 가져올 수 있습니다.

SELECT *
FROM baby_names_prepared
WHERE Year_Of_Birth = :year_param
GROUP BY First_Name

코드 인수로서 액세스

일부 작업 형식의 경우 매개 변수가 인수로 코드에 전달됩니다. 다음 작업 유형에는 인수가 전달됩니다.

  • Python script
  • Python Wheel
  • JAR
  • Spark Submit

자세한 내용은 이 문서의 뒷부분에 있는 작업 유형 세부 정보를 참조하세요.

dbt 작업의 경우 태스크에서 dbt 명령을 호출하여 매개 변수를 전달합니다.

작업을 구성할 때 동적 값 참조 사용

Azure Databricks UI에서 작업을 구성하는 경우 동적 값 참조 구문을 사용하여 작업 매개 변수 또는 기타 동적 값에 액세스합니다. 작업 매개 변수에 액세스하려면 {{job.parameters.<name>}}구문을 사용합니다. 예를 들어, Python wheel 작업을 구성할 때, 매개 변수의 입력을 year_paramyear / 같은 Year_{{job.parameters.year_param}}작업 매개 변수를 참조하도록 설정할 수 있습니다. 동적 값은 구성에서 매개 변수에 대한 액세스 권한을 제공하는 것 외에도 작업 또는 작업에 대한 다른 데이터(예: {{job.id}})에 대한 액세스 권한을 제공합니다. 작업 구성에서 {} 클릭하여 가능한 동적 값 목록을 가져와서 구성에 삽입할 수 있습니다.

작업 유형별 세부 정보

이러한 방법 중 작업 유형에 따라 사용하는 메서드가 달라집니다.

작업 유형 구성에서 접근 코드에서 액세스
노트북 Azure Databricks UI에서 동적 값 참조를 사용하여 노트북을 구성할 수 있습니다. 예를 들어, 작업 매개 변수 값에서 작업 매개 변수를 참조할 수 있습니다. 다른 설정 옵션으로 작업 실행을 사용하여 작업을 수동으로 실행할 때 매개 변수를 재정의하거나 추가할 수 있습니다. Notebook에서 SQL에 대해 명명된 매개변수를 사용하거나 코드에서 dbutils.widgets을 사용할 수 있습니다.
Python 스크립트 태스크에 정의된 매개 변수는 스크립트에 인수로 전달됩니다. 매개 변수 텍스트 상자에서 동적 값 참조를 사용할 수 있습니다. 매개 변수는 위치 인수로 읽거나 Python의 argparse 모듈을 사용하여 구문 분석할 수 있습니다.
Python 휠 작업 정의에 정의된 매개 변수는 코드에 키워드 인수로 전달됩니다. 키워드 인수를 허용하도록 Python 휠 파일을 구성해야 합니다. 매개 변수 값에 동적 값 참조를 사용할 수 있습니다. 스크립트에 키워드 인수로 접근합니다. Python 휠 파일에 패키지된 Python 스크립트에서 인수를 읽는 예제를 보려면 Lakeflow 작업에서 Python 휠 파일 사용을 참조하세요.
SQL 작업 구성에서 동적 값 참조를 사용할 수 있습니다. 명명된 매개 변수를 사용하여 매개 변수 값에 액세스합니다.
파이프라인 파이프라인은 작업에 매개 변수 전달을 지원하지 않습니다. 지원되지 않습니다.
대시보드 대시보드 작업은 작업에 매개 변수 전달을 지원하지 않습니다. 지원되지 않습니다.
Power BI Power BI 작업은 작업에 매개 변수 전달을 지원하지 않습니다. 지원되지 않습니다.
dbt 동적 값 참조를 사용하여 작업을 구성할 때 매개 변수를 dbt 명령으로 전달할 수 있습니다. dbt 명령으로 액세스합니다.
동적 값 참조를 사용하여 작업을 구성할 때 매개 변수 텍스트 상자에 매개 변수를 인수로 전달할 수 있습니다. 매개 변수는 main 클래스의 main 메서드에 대한 인수로 액세스됩니다.
Spark 서브밋 동적 값 참조를 사용하여 작업을 구성할 때 매개 변수 텍스트 상자에 매개 변수를 인수로 전달할 수 있습니다. 매개 변수는 main 클래스의 main 메서드에 대한 인수로 액세스됩니다.
작업 실행 동적 값 참조를 사용하여 작업을 구성할 때 작업 매개 변수 집합을 만들 수 있습니다. 값에는 동적 값 참조가 포함될 수 있습니다. 적용할 수 없습니다.
If/else 조건 예를 들어 조건작업을 구성할 때 동적 값 참조를 사용할 수 있습니다. 적용할 수 없습니다.
각 항목에 대해 작업에 대한 입력 구성할 때 동적 값 참조를 사용할 수 있습니다. 중첩된 태스크는 중첩된 작업의 각 반복에 대해 하나의 입력을 작업 매개 변수로 받습니다. 중첩된 작업은 작업 유형에 따라 매개 변수에 액세스합니다.
클린룸 노트북 Azure Databricks UI에서 동적 값 참조를 사용하여 노트북을 구성할 수 있습니다. 예를 들어, 작업 매개 변수 값에서 작업 매개 변수를 참조할 수 있습니다. Notebook에서 SQL에 대해 명명된 매개변수를 사용하거나 코드에서 dbutils.widgets을 사용할 수 있습니다.