Lees gedeelde tables met Delta Sharing met behulp van 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 Delta Sharing. 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 table namen in Delta Sharing catalogs geregistreerd in de metastore, zoals die in de volgende voorbeelden:
SQL
SELECT * FROM shared_table_name
Python
spark.read.table("shared_table_name")
Voor meer informatie over het configureren van Delta Sharing in Azure Databricks en het uitvoeren van query's op gegevens met behulp van gedeelde table namen, zie Gegevens lezen die zijn gedeeld met Databricks-naar-Databricks Delta Sharing (voor recipients).
U kunt Structured Streaming gebruiken om records in gedeelde tables incrementeel te verwerken. Als u Structured Streaming wilt gebruiken, moet u het delen van geschiedenis voor de tableinschakelen. Zie ALTER SHARE. Voor het delen van geschiedenis is Databricks Runtime 12.2 LTS of hoger vereist.
Als voor de gedeelde table wijzigingsgegevensfeed is ingeschakeld op de bron-Delta-table en geschiedenis die is ingeschakeld voor de share, kunt u de gegevensfeed wijzigen tijdens het lezen van een Delta-share met Structured Streaming- of batchbewerkingen. Zie Delta Lake-wijzigingsgegevensfeed gebruiken in Azure Databricks.
Lezen met het trefwoord Delta Sharing-indeling
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 voor Delta Sharing gedeeld tables lezen
Voor tables waarvoor de geschiedenis is gedeeld en de wijzigingenfeed is ingeschakeld, kunt u wijzigingengegevensfeedrecords 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>")
)
Lees tables, gedeeld via Delta Sharing, met Structured Streaming.
Voor tables die de geschiedenis hebben gedeeld, kunt u de gedeelde table 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>")
)