Condividi tramite


Lettura di tabelle condivise Delta Sharing con dataframe Apache Spark

Questo articolo fornisce esempi di sintassi relativi all'uso di Apache Spark per eseguire query sui dati condivisi tramite la condivisione delta. Usare la deltasharing parola chiave come opzione di formato per le operazioni del dataframe.

Altre opzioni per l'esecuzione di query sui dati condivisi

È anche possibile creare query che usano nomi di tabella condivisi nei cataloghi di condivisione delta registrati nel metastore, ad esempio quelli negli esempi seguenti:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Per altre informazioni sulla configurazione della condivisione delta in Azure Databricks e sull'esecuzione di query sui dati usando nomi di tabella condivisi, vedere Leggere i dati condivisi con La condivisione Delta di Databricks (per i destinatari).

È possibile usare Structured Streaming per elaborare i record nelle tabelle condivise in modo incrementale. Per usare Structured Streaming, è necessario abilitare la condivisione della cronologia per la tabella. Vedere ALTER SHARE. La condivisione della cronologia richiede Databricks Runtime 12.2 LTS o versione successiva.

Se nella tabella condivisa è abilitato il feed di dati delle modifiche nella tabella Delta di origine e nella cronologia abilitata nella condivisione, è possibile usare il feed di dati delle modifiche durante la lettura di una condivisione Delta con structured streaming o operazioni batch. Vedere Usare il feed di dati delle modifiche delta Lake in Azure Databricks.

Leggere con la parola chiave del formato di condivisione delta

La deltasharing parola chiave è supportata per le operazioni di lettura del dataframe Apache Spark, come illustrato nell'esempio seguente:

df = (spark.read
  .format("deltasharing")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)

Leggere il feed di dati delle modifiche per le tabelle condivise di condivisione differenziale

Per le tabelle in cui è abilitato il feed di dati condivisi e modificati della cronologia, è possibile leggere i record dei feed di dati delle modifiche usando i dataframe di Apache Spark. La condivisione della cronologia richiede Databricks Runtime 12.2 LTS o versione successiva.

df = (spark.read
  .format("deltasharing")
  .option("readChangeFeed", "true")
  .option("startingTimestamp", "2021-04-21 05:45:46")
  .option("endingTimestamp", "2021-05-21 12:00:00")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)

Lettura di tabelle condivise di condivisione delta con Structured Streaming

Per le tabelle con cronologia condivisa, è possibile usare la tabella condivisa come origine per Structured Streaming. La condivisione della cronologia richiede Databricks Runtime 12.2 LTS o versione successiva.

streaming_df = (spark.readStream
  .format("deltasharing")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)

# If CDF is enabled on the source table
streaming_cdf_df = (spark.readStream
  .format("deltasharing")
  .option("readChangeFeed", "true")
  .option("startingTimestamp", "2021-04-21 05:45:46")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)