Anlamsal işlevler
Bu makalede anlamsal işlevler ve veri bilimcilerinin ve veri mühendislerinin üzerinde çalıştıkları FabricDataFrame veya FabricSeries ile ilgili işlevleri bulmasına nasıl yardımcı olabilecekleri açıklanır. Anlam işlevleri, Microsoft Fabric semantik bağlantı özelliğinin bir parçasıdır.
Spark 3.4 ve üzeri için, semantik bağlantı çekirdek paketi varsayılan Doku çalışma zamanında kullanılabilir, ancak anlamsal işlev mantığını içeren semantik-link-functions paketinin (örneğin is_holiday
) el ile yüklenmesi gerekir. Python semantik bağlantı (SemPy) kitaplığının en son sürümüne güncelleştirmek için aşağıdaki komutu çalıştırın:
%pip install -U semantic-link
FabricDataFrame, her işlevin tanımladığı mantığı temel alan anlamsal işlevleri dinamik olarak kullanıma sunar.
Örneğin işlev, is_holiday
hem tarih saat sütunu hem de ülke sütunu içeren bir FabricDataFrame üzerinde çalışırken otomatik tamamlama önerilerinde görünür.
Her anlam işlevi, üzerinde çalıştığınız belirli veriler ile ilgili olup olmadığını belirlemek için FabricDataFrame veya FabricSeries içindeki veriler, veri türleri ve meta veriler (Power BI veri kategorileri gibi) hakkındaki bilgileri kullanır.
Semantik işlevler, dekoratöre @semantic_function
ek açıklama eklendiğinde otomatik olarak bulunur.
Anlamsal işlevleri DataFrame kavramına uygulanan C# uzantı yöntemleri gibi düşünebilirsiniz.
Anlamsal işlevler otomatik tamamlama önerileri
Bir FabricDataFrame veya FabricSeries ile çalışırken otomatik tamamlama önerilerinde anlamsal işlevler kullanılabilir. Otomatik tamamlamayı tetikleme için Ctrl+Boşluk tuşlarını kullanın.
Aşağıdaki kod örneği, FabricDataFrame için meta verileri el ile belirtir:
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()
Alternatif olarak, bir anlam modelinden FabricDataFrame'e okursanız meta veriler otomatik olarak doldurulur.
from sempy.fabric import FabricDataFrame
# Read 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()
Yerleşik semantik işlevler
SemPy Python kitaplığı, kullanıma hazır bir dizi yerleşik semantik işlev sağlar. Bu yerleşik işlevler şunlardır:
is_holiday(...)
, tarih belirli bir ülkede tatil ise dönmektrue
için tatiller Python paketini kullanır.to_geopandas(...)
Bir FabricDataFrame'i GeoPandas GeoDataFrame'e dönüştürür.parse_phonenumber(...)
, bir telefon numarasını bileşenlerine ayrıştırmak için telefon numaraları Python paketini kullanır.validators
, e-posta ve kredi kartı numaraları gibi yaygın veri türlerini doğrulamak için doğrulayıcılar Python paketini kullanır.
Özel anlamsal işlevler
Anlamsal işlevler genişletilebilirlik için tasarlanmıştır. Kendi anlamsal işlevlerinizi not defterinizde veya ayrı Python modülleri olarak tanımlayabilirsiniz.
Not defterinin dışında bir anlam işlevi kullanmak için modül içindeki sempy.functions
anlamsal işlevi bildirin. Aşağıdaki kod örneği, bir şehir bir ülkenin başkentiyse döndüren true
anlamsal işlevin _is_capital
tanımını gösterir.
from sempy.fabric import FabricDataFrame, FabricSeries
from sempy.fabric.matcher import CountryMatcher, CityMatcher
from sempy.functions import semantic_function, semantic_parameters
@semantic_function("is_capital")
@semantic_parameters(col_country=CountryMatcher, col_city=CityMatcher)
def _is_capital(df: FabricDataFrame, col_country: str, col_city: str) -> FabricSeries:
"""Returns true if the city is the 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)
Yukarıdaki kod örneğinde:
col_country
vecol_city
parametrelerine sırasıyla veCityMatcher
ileCountryMatcher
ek açıklama eklenir. Bu ek açıklama, karşılık gelen meta verileri içeren bir FabricDataFrame ile çalışırken semantik işlevin otomatik olarak bulunmasını sağlar.- işlevini çağırmak, gerekli giriş sütunlarını tanımlamak için ,
int
,float
vedatetime
gibistr
standart veri türlerini de sağlar. - İlk parametrenin
df
tür ek açıklaması, işlevin FabricSeries yerine FabricDataFrame için geçerli olduğunu gösterir.