Gedeelde OpenSharing-tabellen lezen met Apache Spark DataFrames

Dit artikel bevat syntaxisvoorbeelden van het gebruik van Apache Spark om query's uit te voeren op gegevens die worden gedeeld met OpenSharing. Gebruik het deltasharing trefwoord als een indelingsoptie voor DataFrame-bewerkingen.

Andere opties voor het uitvoeren van query's op gedeelde gegevens

U kunt ook query's maken die gebruikmaken van gedeelde tabelnamen in OpenSharing-catalogi die zijn geregistreerd in de metastore, zoals die in de volgende voorbeelden:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Zie Gegevens lezen die zijn gedeeld met Databricks-naar-Databricks OpenSharing (voor ontvangers) voor meer informatie over het configureren van OpenSharing in Azure Databricks en het opvragen van gegevens met behulp van gedeelde tabelnamen.

U kunt Structured Streaming gebruiken om records in gedeelde tabellen incrementeel te verwerken. Als u Structured Streaming wilt gebruiken, moet u het delen van geschiedenis voor de tabel inschakelen. Zie ALTER SHARE. Voor het delen van geschiedenis is Databricks Runtime 12.2 LTS of hoger vereist.

Als voor de gedeelde tabel change data feed is ingeschakeld op de Delta-brontabel en geschiedenis is ingeschakeld op de share, kunt u change data feed gebruiken wanneer u een Open Sharing-share leest met Structured Streaming of batchbewerkingen. Zie Wijzigingenfeed gebruiken voor Azure Databricks.

Lezen met het indelingstrefwoord OpenSharing

Het deltasharing trefwoord wordt ondersteund voor leesbewerkingen van Apache Spark DataFrame, zoals wordt weergegeven in het volgende voorbeeld:

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

Wijzigingsgegevensfeed lezen voor gedeelde OpenSharing-tabellen

Voor tabellen waarvoor de geschiedenis is gedeeld en de gegevensfeed is ingeschakeld, kunt u wijzigingenfeedrecords lezen met behulp van Apache Spark DataFrames. Voor het delen van geschiedenis is Databricks Runtime 12.2 LTS of hoger vereist.

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

Gedeelde OpenSharing-tabellen lezen met structured streaming

Voor tabellen die de geschiedenis hebben gedeeld, kunt u de gedeelde tabel gebruiken als bron voor Gestructureerd streamen. Voor het delen van geschiedenis is Databricks Runtime 12.2 LTS of hoger vereist.

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