使用 Apache Spark 資料框架讀取 Delta Sharing 中的分享 tables
本文提供使用 Apache Spark 查詢使用 Delta Sharing 共用的數據語法範例。
deltasharing
使用 關鍵詞作為 DataFrame 作業的格式選項。
查詢共享數據的其他選項
您也可以在中繼存放區中註冊的差異共用 catalogs 中建立使用共用 table 名稱的查詢,例如下列範例中的查詢:
SQL
SELECT * FROM shared_table_name
Python
spark.read.table("shared_table_name")
如需在 Azure Databricks 中設定 Delta Sharing 並使用共用 table 名稱查詢資料的詳細資訊,請參閱 使用 Databricks-to-Databricks Delta Sharing 來讀取共用的資料(適用於 recipients)。
您可以使用結構化串流,以累加方式處理共用 tables 中的記錄。 若要使用結構化串流處理(Structured Streaming),您必須啟用 table的歷史記錄共享功能。 請參閱 ALTER SHARE。 記錄共用需要 Databricks Runtime 12.2 LTS 或更新版本。
如果共用 table 已在來源 Delta table 上啟用變更資料饋送,並且共用已啟用歷程記錄,您可以在使用結構化流式處理或批次作業讀取 Delta 共用時利用變更資料饋送。 請參閱 在 Azure Databricks 上使用 Delta Lake 變更數據摘要。
使用 Delta Sharing 格式關鍵詞讀取
deltasharing
Apache Spark DataFrame 讀取作業支持 關鍵詞,如下列範例所示:
df = (spark.read
.format("deltasharing")
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)
讀取 Delta 分享的變更數據饋送 tables
針對已啟用歷史共用和變更資料供應的 tables,您可以使用 Apache Spark DataFrames 來讀取變更資料供應記錄。 記錄共用需要 Databricks Runtime 12.2 LTS 或更新版本。
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>")
)
使用結構化串流讀取 Delta Sharing 共享 tables
對於具有共用歷程記錄的 tables,您可以使用共用 table 做為結構化串流的來源。 記錄共用需要 Databricks Runtime 12.2 LTS 或更新版本。
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>")
)