Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver semantiska funktioner och hur de kan hjälpa dataexperter och datatekniker att identifiera funktioner som är relevanta för den FabricDataFrame eller FabricSeries som de arbetar med. Semantiska funktioner är en del av microsoft fabric-semantisk länkfunktion.
För Spark 3.4 och senare är det semantiska länkkärnpaketet tillgängligt i standardpaketet fabric runtime, men paketet semantic-link-functions som innehåller den semantiska funktionslogik (till exempel is_holiday) måste installeras manuellt. Om du vill uppdatera till den senaste versionen av Python-semantiklänkbiblioteket (SemPy) kör du följande kommando:
%pip install -U semantic-link
En FabricDataFrame exponerar dynamiskt semantiska funktioner baserat på logiken som varje funktion definierar.
Till exempel visas funktionen is_holiday i förslag för automatisk komplettering när du arbetar med en FabricDataFrame som innehåller både en datum-tidskolumn och en landskolumn.
Varje semantisk funktion använder information om data, datatyper och metadata (till exempel Power BI-datakategorier) i FabricDataFrame eller FabricSeries för att fastställa dess relevans för de specifika data som du arbetar med.
Semantiska funktioner identifieras automatiskt när de märks med dekoratören @semantic_function.
Du kan se semantiska funktioner som C#-tilläggsmetoder som tillämpas på DataFrame-konceptet.
Semantiska funktioners automatiska kompletteringsförslag
Semantiska funktioner är tillgängliga i förslag för automatisk komplettering när du arbetar med en FabricDataFrame eller FabricSeries. Använd Ctrl+Space för att utlösa automatisk komplettering.
I följande kodexempel anges metadata för en FabricDataFrame manuellt:
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()
Om du läser från en semantisk modell till en FabricDataFrame fylls metadata i automatiskt.
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()
Inbyggda semantiska funktioner
SemPy Python-biblioteket innehåller en uppsättning inbyggda semantiska funktioner som är tillgängliga direkt. Dessa inbyggda funktioner omfattar:
-
is_holiday(...)använder python-paketet holidays för att returneratrueom datumet är en helgdag i det angivna landet/regionen. -
to_geopandas(...)konverterar en FabricDataFrame till en GeoPandas GeoDataFrame. -
parse_phonenumber(...)använder python-paketet med telefonnummer för att parsa ett telefonnummer i dess komponenter. -
validatorsanvänder python-paketet validatorer för att verifiera vanliga datatyper som e-post och kreditkortsnummer.
Anpassade semantiska funktioner
Semantiska funktioner är utformade för utökningsbarhet. Du kan definiera dina egna semantiska funktioner i notebook-filen eller som separata Python-moduler.
Om du vill använda en semantisk funktion utanför en notebook-fil deklarerar du den semantiska funktionen i modulen sempy.functions . I följande kodexempel visas definitionen av en semantisk funktion _is_capital som returnerar true om en stad är huvudstad/större stad i ett land/en region.
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)
I föregående kodexempel:
- Parametrarna
col_countryochcol_citykommenteras medCountryMatcherrespektiveCityMatcher. Med den här anteckningen kan semantisk funktion identifieras automatiskt när du arbetar med en FabricDataFrame som har motsvarande metadata. - Anropa funktionen tillhandahåller även standarddatatyper som
str,int,floatochdatetimeför att definiera nödvändiga indatakolumner. - Typanteckningen för den första parametern
dfvisar att funktionen gäller för en FabricDataFrame i stället för en FabricSeries.