使用 Apache Spark DataFrame 讀取 Delta Sharing 共享表格
本文提供使用 Apache Spark 查詢使用 Delta Sharing 共用的數據語法範例。
deltasharing
使用 關鍵詞作為 DataFrame 作業的格式選項。
查詢共享數據的其他選項
您也可以在中繼存放區中註冊的 Delta 共用目錄中建立使用共用資料表名稱的查詢,例如下列範例中的查詢:
SQL
SELECT * FROM shared_table_name
Python
spark.read.table("shared_table_name")
如需在 Azure Databricks 中配置 Delta Sharing 以及使用共用資料表名稱查詢數據的更多資訊,請參閱 閱讀透過 Databricks 到 Databricks Delta Sharing 共用的資料(適用於接收者)。
您可以使用結構化串流,以累加方式處理共享數據表中的記錄。 若要使用結構化串流,您必須啟用資料表的歷程記錄共用。 請參閱 ALTER SHARE。 記錄共用需要 Databricks Runtime 12.2 LTS 或更新版本。
如果共享數據表已在來源 Delta 數據表上啟用變更數據摘要,並在共用上啟用歷程記錄,您可以在讀取具有結構化串流或批次作業的 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 Sharing 共享表格的變更數據流
對於已啟用記錄共用和變更數據摘要的數據表,您可以使用 Apache Spark DataFrame 讀取變更資料摘要記錄。 記錄共用需要 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共享的表格
對於具有共用歷程記錄的數據表,您可以使用共用數據表作為結構化串流的來源。 記錄共用需要 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>")
)