Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit les fonctions sémantiques et la manière dont elles peuvent aider les scientifiques et les ingénieurs des données à découvrir des fonctions pertinentes pour le FabricDataFrame ou le FabricSeries sur lequel ils travaillent. Les fonctions sémantiques font partie de la fonctionnalité de lien sémantique de Microsoft Fabric.
Pour Spark 3.4 et plus, le package semantic link core est disponible dans le runtime Fabric par défaut, mais le package semantic-link-functions qui inclut la logique des fonctions sémantiques (comme is_holiday) doit être installé manuellement. Pour mettre à jour la version la plus récente de la bibliothèque Python semantic link (SemPy), exécutez la commande suivante :
%pip install -U semantic-link
Un FabricDataFrame expose dynamiquement des fonctions sémantiques basées sur la logique définie par chaque fonction.
Par exemple, la fonction is_holiday apparaît dans les suggestions de saisie semi-automatique lorsque vous travaillez sur un FabricDataFrame qui contient à la fois une colonne de date et une colonne de pays.
Chaque fonction sémantique utilise des informations sur les données, les types de données et les métadonnées (comme les catégories de données Power BI) dans le FabricDataFrame ou le FabricSeries pour déterminer sa pertinence par rapport aux données particulières sur lesquelles vous travaillez.
Les fonctions sémantiques sont découvertes automatiquement lorsqu’elles sont annotées avec l’élément décoratif @semantic_function.
Vous pouvez considérer les fonctions sémantiques comme des méthodes d'extension C# appliquées au concept de DataFrame.
Suggestions de saisie semi-automatique des fonctions sémantiques
Les fonctions sémantiques sont disponibles dans les suggestions d’autocomplétion lorsque vous travaillez avec un FabricDataFrame ou un FabricSeries. Utilisez Ctrl+Espace pour déclencher la saisie semi-automatique.
L'exemple de code suivant spécifie manuellement les métadonnées d'un 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()
Par ailleurs, si vous lisez un modèle sémantique dans un FabricDataFrame, les métadonnées sont alimentées automatiquement.
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()
Fonctions sémantiques intégrées
La bibliothèque Python SemPy fournit un ensemble de fonctions sémantiques intégrées disponibles d’emblée. Ces fonctions intégrées comprennent :
is_holiday(...)utilise le package Python de congés pour retournertruesi la date est un congé dans le pays/la région donné.to_geopandas(...)convertit un FabricDataFrame en GeoPandas GeoDataFrame.parse_phonenumber(...)utilise le paquetage Python des numéros de téléphone pour analyser un numéro de téléphone en ses composants.validatorsutilise le paquetage Python validators pour valider des types de données courants tels que les courriels et les numéros de cartes de crédit.
Fonctions sémantiques personnalisées
Les fonctions sémantiques sont conçues pour être extensibles. Vous pouvez définir vos propres fonctions sémantiques au sein de votre notebook ou en tant que modules Python distincts.
Pour utiliser une fonction sémantique en dehors d'un bloc-notes, il faut déclarer la fonction sémantique dans le module sempy.functions. L’exemple de code suivant montre la définition d’une fonction _is_capital sémantique qui retourne true si une ville est la capitale/principale ville d’un pays/région.
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)
Dans l’exemple de code précédent :
- Les paramètres
col_countryetcol_citysont annotés avecCountryMatcheretCityMatcher, respectivement. Cette annotation permet à la fonction sémantique d’être détectée automatiquement lors de l’utilisation d’un FabricDataFrame qui a les métadonnées correspondantes. - L’appel de la fonction fournit également des types de données standard tels que
str,int,floatetdatetimepour définir les colonnes d’entrée requises. - L’annotation de type du premier paramètre
dfindique que la fonction s’applique à un FabricDataFrame plutôt qu’à un FabricSeries.
