Dela via


Läsa från semantiska modeller och skriva data som kan användas av Power BI med Spark (INAKTUELL)

Viktigt!

Den inbyggda Spark-connectorn för Semantic Link är under utfasning från och med oktober 2025 och kommer att vara helt avvecklad i oktober 2028. Migrera till Semantic Link Python SDK för att säkerställa fortsatt support och åtkomst till nya funktioner.

I den här artikeln kan du lära dig hur du läser data och metadata och utvärderar mått i semantiska modeller med hjälp av den semantiska länken spark native connector i Microsoft Fabric. Du får också lära dig hur du skriver data som semantiska modeller kan använda.

Förutsättningar

  • Gå till Data Science-upplevelsen i Microsoft Fabric.

    • I den vänstra rutan väljer du arbetslaster.
    • Välj Data Science.
  • Skapa en ny anteckningsbok för att kopiera/klistra in kod i celler.

  • För Spark 3.4 och senare är Semantic-link tillgänglig i standardkörningen när du använder Fabric, och du behöver inte installera den. Om du använder Spark 3.3 eller senare, eller om du vill uppdatera till den senaste versionen av Semantic Link, kan du köra kommandot:

    python %pip install -U semantic-link

  • Lägg till ett Lakehouse till din anteckningsbok.

  • Ladda ned semantikmodellen Customer Profitability Sample.pbix från datauppsättningsmappen på lagringsplatsen fabric-samples och spara den semantiska modellen lokalt.

Ladda upp den semantiska modellen till din arbetsyta

I den här artikeln använder vi semantikmodellen Customer Profitability Sample.pbix . Den här semantiska modellen refererar till ett företag som tillverkar marknadsföringsmaterial och innehåller data om produkter, kunder och motsvarande intäkter för olika affärsenheter.

  1. I den vänstra rutan väljer du Arbetsytor och väljer sedan namnet på din arbetsyta för att öppna den.
  2. Välj Importera>rapport eller sidnumrerad rapport>från den här datorn, och välj Customer Profitability Sample.pbix semantisk modell.

Skärmbild som visar gränssnittet för att ladda upp en semantisk modell till arbetsytan.

När uppladdningen är klar har arbetsytan tre nya artefakter: en Power BI-rapport, en instrumentpanel och en semantisk modell med namnet Customer Profitability Sample. Du använder den här semantiska modellen för stegen i den här artikeln.

Skärmbild som visar objekten från Power BI-filen som laddats upp till arbetsytan.

Läsa och skriva data med Hjälp av Spark i Python, R, SQL och Scala

Som standard är den arbetsyta som används för att komma åt semantiska modeller:

  • arbetsytan i det bifogade Lakehouse eller
  • arbetsytan för anteckningsboken, om inget Lakehouse är anslutet.

Microsoft Fabric exponerar alla tabeller från alla semantiska modeller på arbetsytan som Spark-tabeller. Alla Spark SQL-kommandon kan köras i Python, R och Scala. Den inbyggda sambandanslutningen för Spark möjliggör överföring av Spark-villkor till Power BI-motorn.

Tips/Råd

Eftersom Power BI-tabeller och mått exponeras som vanliga Spark-tabeller kan de kopplas till andra Spark-datakällor i en enda fråga.

  1. Lista tabeller över alla semantiska modeller på arbetsytan med PySpark.

    df = spark.sql("SHOW TABLES FROM pbi")
    display(df)
    
  2. Hämta data från tabellen Kund i semantikmodellen Exempel på kundlönsamhet med hjälp av SparkR.

    Anmärkning

    Hämtning av tabeller omfattas av strikta begränsningar (se Läsbegränsningar) och resultatet kan vara ofullständigt. Använd aggregerad pushdown för att minska mängden data som överförs. De aggregeringar som stöds är: COUNT, SUM, AVG, MIN och MAX.

    %%sparkr
    
    df = sql("SELECT * FROM pbi.`Customer Profitability Sample`.Customer")
    display(df)
    
  3. Power BI-mått är tillgängliga via den virtuella tabellen _Metrics. Följande fråga beräknar den totala intäkten och intäktsbudgeten perregion och bransch.

    %%sql
    
    SELECT
        `Customer[Country/Region]`,
        `Industry[Industry]`,
        AVG(`Total Revenue`),
        AVG(`Revenue Budget`)
    FROM
        pbi.`Customer Profitability Sample`.`_Metrics`
    WHERE
        `Customer[State]` in ('CA', 'WA')
    GROUP BY
        `Customer[Country/Region]`,
        `Industry[Industry]`
    
  4. Granska tillgängliga mått och dimensioner med hjälp av Spark-schema.

    spark.table("pbi.`Customer Profitability Sample`._Metrics").printSchema()
    
  5. Lagra data som en deltatabell i din Lakehouse.

    delta_table_path = "<your delta table path>" #fill in your delta table path 
    df.write.format("delta").mode("overwrite").save(delta_table_path)
    

Läsbehörighetsbegränsningar

API:erna för läsåtkomst har följande begränsningar:

  • Frågor som körs längre än 10 sekunder i Analysis Service stöds inte (indikation i Spark: "java.net.SocketTimeoutException: PowerBI-tjänstens kommunikation misslyckades")
  • Power BI-tabellåtkomst med Spark SQL omfattas av begränsningar för Power BI-serverdelen.
  • Predicate pushdown för Spark _Metrics queries är begränsad till ett enda IN-uttryck och kräver minst två element. Extra IN-uttryck och predikat som inte stöds utvärderas i Spark efter dataöverföring.
  • Predikatnedtryckning för Power BI-tabeller som används med Spark SQL stöder inte följande uttryck:
  • Spark-sessionen måste startas om för att göra nya semantiska modeller tillgängliga i Spark SQL.