의미 체계 함수
이 문서에서는 의미 체계 함수와 데이터 과학자 및 데이터 엔지니어가 작업 중인 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 라이브러리는 기본적으로 사용할 수 있는 기본 제공 의미 체계 함수 집합을 제공합니다. 몇 가지 예는 다음과 같습니다.
is_holiday(...)
날짜가 지정된 국가의 휴일인 경우 휴일 python 패키지를 사용하여 반환true
하는/>입니다. to_geopandas(...)
FabricDataFrame을 GeoPandas GeoDataFrame으로 변환하는/>입니다. parse_phonenumber(...)
- 전화 번호 Python 패키지를 사용하여 전화 번호를 해당 구성 요소로 구문 분석합니다 .validators
전자 메일 및 크레딧 카드 번호와 같은 일반적인 데이터 형식에 대한 데이터 유효성 검사를 수행하는 입니다. 의미 체계 함수는 유효성 검사기 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으로 작업할 때 의미 체계 함수를 자동으로 검색할 수 있습니다. - 함수를 호출하면 ,
int
float
및 같은str
표준 데이터 형식을datetime
제공하고 필요한 입력 열을 정의합니다. - 첫 번째 매개 변수(
df
)의 형식 주석은 함수가 FabricSeries가 아닌 FabricDataFrame에 적용할 수 있음을 보여 줍니다.
관련 콘텐츠
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기