Condividi tramite


Funzioni di trasformazione in Power Query per il wrangling dei dati

APPLIES TO: Azure Data Factory Azure Synapse Analytics

Suggerimento

Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

Data Wrangling in Azure Data Factory consente di eseguire operazioni di preparazione dei dati agile senza codice e wrangling su scala cloud convertendo gli script Power Query M in script Flusso di dati. Azure Data Factory si integra con Power Query Online e rende Power Query M funzioni disponibili per il wrangling dei dati tramite l'esecuzione di Spark tramite l'infrastruttura Spark del flusso di dati.

Attualmente non tutte le funzioni M Power Query sono supportate per il wrangling dei dati nonostante sia disponibile durante la creazione. Durante la compilazione dei mash-up, verrà visualizzato il messaggio di errore seguente se una funzione non è supportata:

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

Di seguito è riportato un elenco delle funzioni M supportate Power Query.

Gestione colonne

Filtro delle righe

Usare la funzione M Table.SelectRows per filtrare in base alle condizioni seguenti:

  • Uguaglianza e disuguaglianza
  • Confronti numerici, di testo e di data (ma non datetime)
  • Informazioni numeriche, ad /
  • Contenimento del testo con Text.Contains, Text.StartsWith o Text.EndsWith
  • Intervalli di date che includono tutte le funzioni date 'IsIn'
  • Combinazioni di queste condizioni utilizzando e o non

Aggiunta e trasformazione di colonne

Le funzioni M seguenti aggiungono o trasformano colonne: Table.AddColumn, Table.TransformColumns, Table.ReplaceValue, Table.DuplicateColumn. Di seguito sono riportate le funzioni di trasformazione supportate.

Unione/unione di tabelle

  • Power Query genererà un join annidato (Table.NestedJoin; gli utenti possono anche scrivere manualmente Table.AddJoinColumn). Gli utenti devono quindi espandere la colonna join annidata in un join non annidato (Table.ExpandTableColumn, non supportato in alcun altro contesto).
  • La funzione M Table.Join può essere scritta direttamente per evitare la necessità di un passaggio di espansione aggiuntivo, ma l'utente deve assicurarsi che non siano presenti nomi di colonna duplicati tra le tabelle unite in join
  • Tipi di join supportati: inner, leftouter, rightouter, fullouter
  • Sia Value.Equals che Value.NullableEquals sono supportati come comparer di uguaglianza delle chiavi

Raggruppa per

Utilizzare Table.Group per aggregare i valori.

Ordinamento

Utilizzare Table.Sort per ordinare i valori.

Riduzione delle righe

Keep and Remove Top, Keep Range (funzioni M corrispondenti, solo conteggi di supporto, non condizioni: Table.FirstN, Table.Skip, Table.RemoveFirstN, Table.Range, Table.MinN, Table.MaxN)

Funzioni non supportate note

Funzione Status
Table.PromoteHeaders Non supportato. Lo stesso risultato può essere ottenuto impostando "Prima riga come intestazione" nel set di dati.
Table.CombineColumns Si tratta di uno scenario comune non supportato direttamente, ma che può essere ottenuto aggiungendo una nuova colonna che concatena due colonne specificate. Ad esempio, Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] & " & [LastName])
Table.TransformColumnTypes Questa funzionalità è supportata nella maggior parte dei casi. Gli scenari seguenti non sono supportati: trasformazione della stringa in tipo valuta, trasformazione della stringa in tipo time, trasformazione della stringa in tipo time, trasformazione della stringa in Tipo percentuale e trasformazione con le impostazioni locali.
Table.NestedJoin Se si esegue un join, si verifica un errore di convalida. Le colonne devono essere espanse affinché funzionino.
Table.RemoveLastN La rimozione delle righe inferiori non è supportata.
Table.RowCount Non supportato, ma può essere ottenuto aggiungendo una colonna personalizzata contenente il valore 1, quindi aggregando tale colonna con List.Sum. Table.Group è supportato.
Gestione degli errori a livello di riga La gestione degli errori a livello di riga non è attualmente supportata. Ad esempio, per filtrare i valori non numerici da una colonna, un approccio consiste nel trasformare la colonna di testo in un numero. Ogni cella, che non riesce a trasformare, sarà in uno stato di errore e deve essere filtrata. Questo scenario non è possibile in M con scalabilità orizzontale.
Table.Transpose Non supportato

Soluzioni alternative per lo script M

SplitColumn

Di seguito è riportato un'alternativa per la divisione per lunghezza e per posizione

  • Table.AddColumn(Source, "First characters", each Text.Start([Email], 7), type text)
  • Table.AddColumn(#"Inserted first characters", "Text range", each Text.Middle([Email], 4, 9), type text)

Questa opzione è accessibile dall'opzione Estrai sulla barra multifunzione

Power Query Aggiungi colonna

Table.CombineColumns

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

Documenti principali

  • Selezionare la trasformazione Pivot dall'editor PQ e selezionare la colonna pivot

Power Query Common

  • Selezionare quindi la colonna valore e la funzione di aggregazione

Power Query selettore pivot

  • Quando si fa clic su OK, verranno visualizzati i dati nell'editor aggiornati con i valori con pivot
  • Verrà visualizzato anche un messaggio di avviso che indica che la trasformazione potrebbe non essere supportata
  • Per correggere questo avviso, espandere manualmente l'elenco con pivot usando l'editor PQ
  • Selezionare Editor avanzato opzione dalla barra multifunzione
  • Espandere manualmente l'elenco dei valori con pivot
  • Sostituire List.Distinct() con l'elenco di valori simili al seguente:
#"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"

Formattazione di colonne di data/ora

Per impostare il formato di data/ora quando si usa Power Query ADF, seguire questi set per impostare il formato.

Power Query Modifica tipo

  1. Selezionare la colonna nell'interfaccia utente di Power Query e scegliere Cambia tipo > data/ora
  2. Verrà visualizzato un messaggio di avviso
  3. Aprire Editor avanzato e modificare TransformColumnTypes in TransformColumns. Specificare il formato e le impostazioni cultura in base ai dati di input.

editor di Power Query

#"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}})

Informazioni su come creare un Power Query di data wrangling in ADF.