Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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, @semantic_function dekoratörüyle etiketlendiğinde otomatik olarak keşfedilir.
Anlamsal işlevleri DataFrame kavramına uygulanan C# uzantı yöntemleri gibi düşünebilirsiniz.
Otomatik tamamlama için anlamsal işlev ö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(...), tarihin belirli bir ülkede tatil olup olmadığını belirlemek için tatiller Python paketini kullanır vetruedöner. -
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 _is_capital anlamsal işlevin true 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_countryvecol_cityparametrelerine sırasıylaCountryMatcherveCityMatcheranotasyon 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 ,
str,intvefloatgibidatetimestandart veri türlerini de sağlar. - İlk parametrenin
dftür ek açıklaması, işlevin FabricSeries yerine FabricDataFrame için geçerli olduğunu gösterir.