Delen via


Transformatiefuncties in Power Query voor gegevens-wrangling

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Met Data Wrangling in Azure Data Factory kunt u flexibele gegevensvoorbereiding zonder code uitvoeren en wrangling uitvoeren op cloudschaal door Power Query-scripts M te vertalen naar Gegevensstroom script. ADF kan worden geïntegreerd met Power Query Online en maakt Power Query-functies M beschikbaar voor gegevens wrangling via Spark-uitvoering met behulp van de Spark-infrastructuur voor de gegevensstroom.

Momenteel worden niet alle Power Query M-functies ondersteund voor gegevens wrangling ondanks dat ze beschikbaar zijn tijdens het ontwerpen. Tijdens het bouwen van uw mash-ups wordt u gevraagd om het volgende foutbericht als een functie niet wordt ondersteund:

UserQuery : Expression.Error: The transformation logic is not supported as it requires dynamic access to rows of data, which cannot be scaled out.

Hieronder ziet u een lijst met ondersteunde Power Query M-functies.

Kolombeheer

Rijfiltering

Gebruik M function Table.SelectRows om te filteren op de volgende voorwaarden:

Kolommen toevoegen en transformeren

Met de volgende M-functies worden kolommen toegevoegd of getransformeerd: Table.AddColumn, Table.TransformColumns, Table.ReplaceValue, Table.DuplicateColumn. Hieronder ziet u de ondersteunde transformatiefuncties.

Tabellen samenvoegen/samenvoegen

  • Power Query genereert een geneste join (Table.NestedJoin; gebruikers kunnen ook handmatig Table.AddJoinColumn schrijven). Gebruikers moeten vervolgens de geneste joinkolom uitbreiden naar een niet-geneste join (Table.ExpandTableColumn, niet ondersteund in een andere context).
  • De M-functie Table.Join kan rechtstreeks worden geschreven om te voorkomen dat er een extra uitbreidingsstap nodig is, maar de gebruiker moet ervoor zorgen dat er geen dubbele kolomnamen zijn tussen de gekoppelde tabellen
  • Ondersteunde jointypen: Inner, LeftOuter, RightOuter, FullOuter
  • Zowel Value.Equals als Value.NullableEquals worden ondersteund als key equality comparers

Groeperen op

Gebruik Table.Group om waarden samen te voegen.

Sorteervolgorde

Gebruik Table.Sort om waarden te sorteren.

Rijen verminderen

Boven behouden en verwijderen, Bereik behouden (bijbehorende M-functies, alleen ondersteunende aantallen, geen voorwaarden: Table.FirstN, Table.Skip, Table.RemoveFirstN, Table.Range, Table.MinN, Table.MaxN)

Bekende niet-ondersteunde functies

Functie Status
Table.PromoteHeaders Wordt niet ondersteund. Hetzelfde resultaat kan worden bereikt door 'Eerste rij als koptekst' in te stellen in de gegevensset.
Table.CombineColumns Dit is een veelvoorkomend scenario dat niet rechtstreeks wordt ondersteund, maar kan worden bereikt door een nieuwe kolom toe te voegen die twee opgegeven kolommen samenvoegt. Bijvoorbeeld Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] & " & [LastName])
Table.TransformColumnTypes Dit wordt in de meeste gevallen ondersteund. De volgende scenario's worden niet ondersteund: het transformeren van tekenreeks naar valutatype, het transformeren van tekenreeks naar tijdtype, het transformeren van tekenreeks naar percentagetype en transformeren met landinstellingen.
Table.NestedJoin Het uitvoeren van een join resulteert in een validatiefout. De kolommen moeten worden uitgevouwen om deze te laten werken.
Table.RemoveLastN Onderste rijen verwijderen wordt niet ondersteund.
Table.RowCount Niet ondersteund, maar kan worden bereikt door een aangepaste kolom met de waarde 1 toe te voegen en die kolom vervolgens samen te voegen met List.Sum. Table.Group wordt ondersteund.
Foutafhandeling op rijniveau Foutafhandeling op rijniveau wordt momenteel niet ondersteund. Als u bijvoorbeeld niet-numerieke waarden uit een kolom wilt filteren, moet u de tekstkolom omzetten in een getal. Elke cel, die niet kan worden getransformeerd, heeft een foutstatus en moet worden gefilterd. Dit scenario is niet mogelijk in uitgeschaalde M.
Table.Transponeren Niet ondersteund

Tijdelijke oplossingen voor M-scripts

SplitColumn

Hieronder ziet u een alternatief voor splitsen op lengte en positie

  • Table.AddColumn(Source, "First characters", each Text.Start([Email], 7), type text)
  • Table.AddColumn(#"Ingevoegde eerste tekens", "Tekstbereik", elke Text.Middle([E-mail], 4, 9), typ tekst)

Deze optie is toegankelijk via de optie Uitpakken op het lint

Kolom toevoegen in Power Query

Table.CombineColumns

  • Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] & " & [LastName])

Pivots

  • Draaitransformatie selecteren in de PQ-editor en uw draaikolom selecteren

Power Query Pivot Common

  • Selecteer vervolgens de waardekolom en de statistische functie

Power Query Pivot Selector

  • Wanneer u op OK klikt, ziet u de gegevens in de editor bijgewerkt met de gepi stemmen waarden
  • U ziet ook een waarschuwingsbericht dat de transformatie mogelijk niet wordt ondersteund
  • Als u deze waarschuwing wilt oplossen, vouwt u de lijst met pivoted handmatig uit met behulp van de PQ-editor
  • Selecteer Geavanceerde editor optie op het lint
  • De lijst met gedraaide waarden handmatig uitvouwen
  • Vervang List.Distinct() door de lijst met waarden zoals deze:
#"Pivoted column" = Table.Pivot(Table.TransformColumnTypes(#"Changed column type 1", {{"genres", type text}}), {"Drama", "Horror", "Comedy", "Musical", "Documentary"}, "genres", "Rating", List.Average)
in
  #"Pivoted column"

Datum-/tijdkolommen opmaken

Als u de datum-/tijdnotatie wilt instellen wanneer u Power Query ADF gebruikt, volgt u deze sets om de indeling in te stellen.

Power Query-wijzigingstype

  1. Selecteer de kolom in de gebruikersinterface van Power Query en kies Datum/tijd wijzigen >
  2. U ziet een waarschuwingsbericht
  3. Open Geavanceerde editor en ga naar TransformColumnTypes TransformColumns. Geef de notatie en cultuur op op basis van de invoergegevens.

Power Query-editor

#"Changed column type 1" = Table.TransformColumns(#"Duplicated column", {{"start - Copy", each DateTime.FromText(_, [Format = "yyyy-MM-dd HH:mm:ss", Culture = "en-us"]), type datetime}})

Meer informatie over het maken van een gegevens met Power Query in ADF.