Informazioni sulle differenze tra i formati di dati U-SQL e Spark
Importante
Azure Data Lake Analytics è stato ritirato il 29 febbraio 2024. Scopri di più su con questo annuncio.
Per l'analisi dei dati, l'organizzazione può usare azure Synapse Analytics o Microsoft Fabric.
Se si vuole usare azure Databricks o azure HDInsight Spark, è consigliabile eseguire la migrazione dei dati da azure Data Lake Storage Gen1 a Azure Data Lake Storage Gen2.
Oltre a spostare i file, è anche necessario rendere i dati, archiviati nelle tabelle U-SQL, accessibili a Spark.
Spostare i dati archiviati nei file di Azure Data Lake Storage Gen1
I dati archiviati nei file possono essere spostati in diversi modi:
- Scrivere una pipeline di di Azure Data Factory per copiare i dati da account di Azure Data Lake Storage Gen1 all'account azure Data Lake Storage Gen2.
- Scrivere un processo Spark che legge i dati dall'account azure Data Lake Storage Gen1 e lo scrive nell'account azure Data Lake Storage Gen2. In base al caso d'uso, può essere necessario scriverlo in un formato diverso, ad esempio Parquet, se non è necessario mantenere il formato di file originale.
È consigliabile esaminare l'articolo Aggiornare le soluzioni di analisi dei Big Data da Azure Data Lake Storage Gen1 ad Azure Data Lake Storage Gen2
Spostare i dati archiviati nelle tabelle U-SQL
Le tabelle U-SQL non sono comprese da Spark. Se i dati sono archiviati nelle tabelle U-SQL, si eseguirà un processo U-SQL che estrae i dati della tabella e lo salva in un formato comprensibile da Spark. Il formato più appropriato consiste nel creare un set di file Parquet seguendo il layout della cartella del metastore Hive.
L'output può essere ottenuto in U-SQL con l'emettitore Parquet predefinito e usando il partizionamento dinamico degli output con insiemi di file per creare le cartelle delle partizioni. Elaborare più file che mai e usare Parquet fornisce un esempio di come creare tali dati consumabili da Spark.
Dopo questa trasformazione, copiare i dati come descritto nel capitolo Spostare i dati archiviati nei file di Azure Data Lake Storage Gen1.
Avvertenze
Semantica dei dati Durante la copia dei file, la copia verrà eseguita a livello di byte. Gli stessi dati dovrebbero quindi apparire nell'account Azure Data Lake Storage Gen2. Si noti tuttavia che Spark può interpretare alcuni caratteri in modo diverso. Ad esempio, può usare un valore predefinito diverso per un delimitatore di riga in un file CSV. Inoltre, se si copiano dati tipizzati (da tabelle), Parquet e Spark possono avere precisione e scala diversi per alcuni dei valori tipizzati (ad esempio, float) e possono trattare valori Null in modo diverso. Ad esempio, U-SQL ha la semantica C# per i valori Null, mentre Spark ha una logica a tre valori null.
Le tabelle U-SQL per l'organizzazione dei dati (partizionamento) forniscono due livelli di partizionamento. Il livello esterno (
PARTITIONED BY
) è basato sul valore e si mappa per lo più nello schema di partizionamento di Hive/Spark utilizzando gerarchie di cartelle. È necessario assicurarsi che i valori Null vengano mappati alla cartella corretta. Il livello interno (DISTRIBUTED BY
) in U-SQL offre quattro schemi di distribuzione: round robin, intervallo, hash e hash diretto. Le tabelle Hive/Spark supportano solo il partizionamento dei valori o il partizionamento hash, usando una funzione hash diversa rispetto a U-SQL. Quando si esportano i dati della tabella U-SQL, probabilmente sarà possibile eseguire il mapping solo nel partizionamento dei valori di Spark e potrebbe essere necessario eseguire un'ulteriore ottimizzazione del layout dei dati in base alle query finali di Spark.
Passaggi successivi
- Informazioni sui concetti relativi al codice Spark per gli sviluppatori U-SQL
- Aggiornare le soluzioni di analisi dei Big Data da Azure Data Lake Storage Gen1 ad Azure Data Lake Storage Gen2
- .NET per Apache Spark
- Trasformare i dati usando l'attività Spark in Azure Data Factory
- Trasformare i dati usando l'attività Hive di Hadoop in Azure Data Factory
- Che cos'è Apache Spark in Azure HDInsight