다음을 통해 공유


의미 체계 함수

이 문서에서는 의미 체계 함수와 데이터 과학자 및 데이터 엔지니어가 작업 중인 FabricDataFrame 또는 FabricSeries와 관련된 함수를 검색하는 데 어떻게 도움이 되는지 설명합니다.

Spark 3.4 이상의 경우 패브릭을 사용할 때 기본 런타임에서 의미 체계 링크를 사용할 수 있으며 설치할 필요가 없습니다. Spark 3.3 이하를 사용하거나 최신 버전의 의미 체계 링크로 업데이트하려는 경우 다음 명령을 실행할 수 있습니다.

python %pip install -U semantic-link  

FabricDataFrames는 각 함수에서 정의한 논리에 따라 의미 체계 함수를 동적으로 노출합니다. 예를 들어 is_holiday 날짜/시간 열과 국가 열을 모두 포함하는 FabricDataFrame에서 작업할 때 함수가 자동 완성 제안에 표시됩니다.

각 의미 체계 함수는 데이터 형식, 메타데이터(예: Power BI 데이터 범주) 및 FabricDataFrame 또는 FabricSeries의 데이터에 대한 정보를 사용하여 작업 중인 특정 데이터와 관련성을 확인합니다.

의미 체계 함수는 데코레이터에 주석을 추가하면 @semantic_function 자동으로 검색됩니다. 의미 체계 함수는 인기 있는 DataFrame 개념에 적용되는 C# 확장 메서드 와 비슷하다고 생각할 수 있습니다.

의미 체계 함수 사용: 자동 완성 제안

의미 체계 함수는 FabricDataFrame 또는 FabricSeries로 작업할 때 자동 완성 제안에서 사용할 수 있습니다. Ctrl+공백을 사용하여 자동 완성을 트리거할 수 있습니다.

자동 완성 제안의 의미 체계 함수 스크린샷

다음 예제에서는 FabricDataFrame에 대한 메타데이터를 수동으로 지정합니다.

from sempy.fabric import FabricDataFrame

df = FabricDataFrame(
    {"country": ["US", "AT"],
        "lat": [40.7128, 47.8095],
        "long": [-74.0060, 13.0550]},
    column_metadata={"lat": {"data_category": "Latitude"}, "long": {"data_category": "Longitude"}},
)

# Convert to GeoPandas dataframe
df_geo = df.to_geopandas(lat_col="lat", long_col="long")

# Use the explore function to visualize the data
df_geo.explore()

또는 의미 체계 모델에서 FabricDataFrame으로 읽을 수 있으며, 이 경우 메타데이터가 자동으로 채워질 수 있습니다.

from sempy.fabric import FabricDataFrame

# Alternative: reading from semantic model
import sempy.fabric as fabric
df = fabric.read_table("my_dataset_name", "my_countries")

# Convert to GeoPandas dataframe
df_geo = df.to_geopandas(lat_col="lat", long_col="long")

# Use the explore function to visualize the data
df_geo.explore()

기본 제공 의미 체계 함수

SemPy Python 라이브러리는 기본적으로 사용할 수 있는 기본 제공 의미 체계 함수 집합을 제공합니다. 몇 가지 예는 다음과 같습니다.

사용자 지정 의미 체계 함수

의미 체계 함수는 확장성을 위해 빌드됩니다. Notebook 내에서 또는 별도의 Python 모듈로 사용자 고유의 의미 체계 함수를 정의할 수 있습니다. Notebook 외부에서 의미 체계 함수를 사용하려면 모듈 내에서 의미 체계 함수를 sempy.functions 선언해야 합니다.

이 코드 예제에서는 도시가 국가의 수도인 경우 반환 true 되는 의미 체계 함수 _is_captial 의 정의를 보여줍니다.

from sempy.fabric import FabricDataFrame, FabricSeries
from sempy.fabric.matcher import CountryMatcher, CityMatcher
from sempy.functions import semantic_function, semantic_paramters

@semantic_function("is_capital")
@semantic_parameters(col_country=CountryMatcher, col_city=CityMatcher)
def _is_captial(df: FabricDataFrame, col_country: str, col_city: str) -> FabricSeries:
    """Returns true if the city is a capital of the country"""
    capitals = {
        "US": ["Washington"],
        "AT": ["Vienna"],
        # ...
    }

    return df[[col_country, col_city]] \
        .apply(lambda row: row[1] in capitals[row[0]], axis=1)

다음 점은 코드 조각의 분석을 제공합니다.

  • col_city 매개 변수에는 col_country 각각 주석과 CityMatcher매개 변수가 주석으로 CountryMatcher 추가됩니다. 이 주석을 사용하면 해당 메타데이터가 있는 FabricDataFrame으로 작업할 때 의미 체계 함수를 자동으로 검색할 수 있습니다.
  • 함수를 호출하면 , intfloat및 같은 str표준 데이터 형식을 datetime 제공하고 필요한 입력 열을 정의합니다.
  • 첫 번째 매개 변수(df)의 형식 주석은 함수가 FabricSeries가 아닌 FabricDataFrame에 적용할 수 있음을 보여 줍니다.