Freigeben über


Lesen von per Delta Sharing freigegebener Tabellen mit Apache Spark DataFrames

Dieser Artikel enthält Syntaxbeispiele für die Verwendung von Apache Spark zum Abfragen von Daten, die mithilfe der Delta-Freigabegemeinsam genutzt werden. Verwenden Sie das deltasharing Schlüsselwort als Formatoption für DataFrame-Vorgänge.

Weitere Optionen zum Abfragen freigegebener Daten

Sie können auch Abfragen erstellen, die freigegebene Tabellennamen in Delta-Freigabekatalogen verwenden, die im Metastore registriert sind, wie beispielsweise die in den folgenden Beispielen:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Weitere Informationen zum Konfigurieren der Delta-Freigabe in Azure Databricks und Abfragen von Daten mit freigegebenen Tabellennamen finden Sie unter Lesen von Daten, die mit Databricks-to-Databricks Delta Sharing (für Empfänger)freigegeben wurden.

Sie können strukturiertes Streaming verwenden, um Datensätze in freigegebenen Tabellen inkrementell zu verarbeiten. Um strukturiertes Streaming zu verwenden, müssen Sie die Verlaufsfreigabe für die Tabelle aktivieren. Siehe ALTER SHARE. Für die Verlaufsfreigabe ist Databricks Runtime 12.2 LTS oder höher erforderlich.

Wenn die freigegebene Tabelle den Datenfeed für die Quell-Delta-Tabelle und den in der Freigabe aktivierten Verlauf aktiviert hat, können Sie den Datenfeed ändern, während Sie eine Delta-Freigabe mit Strukturiertem Streaming oder Batchvorgängen lesen. Siehe Verwenden des Delta Lake-Änderungs-Datenfeeds in Azure Databricks.

Lesen mit dem Schlüsselwort „Delta Sharing Format“

Das deltasharing Schlüsselwort wird für Apache Spark DataFrame-Lesevorgänge unterstützt, wie im folgenden Beispiel gezeigt:

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

Lesen des Änderungsdatenfeeds für freigegebene Delta-Tabellen

Für Tabellen mit aktiviertem Verlaufs- und Änderungsdatenfeed können Sie Änderungsdatenfeedeinträge mithilfe von Apache Spark DataFrames lesen. Für die Verlaufsfreigabe ist Databricks Runtime 12.2 LTS oder höher erforderlich.

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

Lesen der freigegebenen Delta-Freigabetabellen mithilfe von strukturiertem Streaming

Für Tabellen, die den Verlauf freigegeben haben, können Sie die freigegebene Tabelle als Quelle für strukturiertes Streaming verwenden. Für die Verlaufsfreigabe ist Databricks Runtime 12.2 LTS oder höher erforderlich.

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