Jaa


Semanttiset funktiot

Tässä artikkelissa kuvataan semanttisia funktioita ja sitä, miten ne voivat auttaa tietojenkäsittelyasiantuntijat ja tietoteknikot löytämään funktioita, jotka liittyvät heidän työstämäänsä FabricDataFrameen tai FabricSeriesiin. Semanttiset funktiot ovat osa Microsoft Fabricin semanttisen linkin ominaisuutta.

Spark 3.4:ssä ja tätä uudemmat versioissa semanttisen linkin ydinpaketti on saatavilla oletusarvoisessa Fabric-suorituspalvelussa, mutta semanttisen linkin funktiot-funktiopaketti, joka sisältää semanttisen funktion logiikan (kuten is_holiday), on asennettava manuaalisesti. Päivitä Pythonin semanttinen linkki (SemPy) -kirjaston uusimpaan versioon suorittamalla seuraava komento:

%pip install -U semantic-link

FabricDataFrame paljastaa dynaamisesti semanttisia funktioita kunkin funktion määrittämän logiikan perusteella. Esimerkiksi funktio näkyy automaattisen täydennyksen is_holiday ehdotuksissa, kun käsittelet FabricDataFrame-kehystä, joka sisältää sekä datetime-sarakkeen että maasarakkeen.

Kukin semanttinen funktio käyttää FabricDataFrame- tai FabricSeries-kehyksissä tietoja tiedoista, tietotyypeistä ja metatiedoista (kuten Power BI -tietoluokista) niiden merkityksen määrittämiseksi, mitä käsittelet.

Semanttiset funktiot löydetään automaattisesti, kun niihin lisätään merkintä decoratorilla @semantic_function . Semanttiset funktiot ovat ikään kuin DataFrame-käsitteessä käytettyjä C#-laajennusmenetelmiä .

Semanttiset funktiot voivat täydentää ehdotuksia automaattisesti

Semanttiset funktiot ovat käytettävissä automaattisen täydennysehdotuksen kanssa, kun käytät FabricDataFrame- tai FabricSeries-kehyksiä. Käynnistä automaattinen täydennys painamalla Ctrl+välilyönti.

Näyttökuva semanttisista funktioista automaattisen täydennysehdotuksen yhteydessä.

Seuraava koodiesimerkki määrittää manuaalisesti FabricDataFrame-kehyksen metatiedot:

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()

Vaihtoehtoisesti jos luet semanttisesta mallista FabricDataFrame-kehykseen, metatiedot täytetään automaattisesti.

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()

Sisäiset semanttiset funktiot

SemPy Python -kirjasto sisältää joukon valmiita semanttisia funktioita, jotka ovat käytettävissä valmiina. Näitä sisäisiä funktioita ovat muun muassa seuraavat:

Mukautetut semanttiset funktiot

Semanttiset funktiot on suunniteltu laajennettavuutta varten. Voit määrittää omia semanttisia funktioita muistikirjassasi tai erillisinä Python-moduuleina.

Jos haluat käyttää semanttista toimintoa muistikirjan ulkopuolella, määritä semanttinen funktio moduulissa sempy.functions . Seuraava koodiesimerkki näyttää semanttisen funktion _is_capital määrityksen, joka palauttaa true arvon, jos kaupunki on maan pääkaupunki.

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)

Edellisessä koodiesimerkissä:

  • - ja col_city -col_countryparametreihin on lisätty CountryMatcher - ja CityMatcher-merkintöjä. Tämä huomautus sallii semanttisen funktion automaattisen löytämisen, kun käytät FabricDataFrame-kehyksessä vastaavia metatietoja.
  • Funktion kutsuminen tarjoaa myös vakiotietotyyppejä, kuten str, int, floatja datetime vaadittujen syötesarakkeiden määrittämiseksi.
  • Ensimmäisen parametrin df tyyppihuomenna ilmaisee, että funktiota voidaan käyttää FabricDataFrame-kehykseen FabricSeries-ominaisuuden sijaan.