本文提供使用 Apache Spark 查詢使用 OpenSharing 共享資料的語法範例。
deltasharing使用 關鍵詞作為 DataFrame 作業的格式選項。
查詢共享數據的其他選項
你也可以建立查詢,在中繼資料存放區中已註冊的 OpenSharing 目錄裡使用共用資料表名稱,例如下列範例:
SQL
SELECT * FROM shared_table_name
Python
spark.read.table("shared_table_name")
欲了解更多關於在 Azure Databricks 中配置 OpenSharing 及使用共享資料表名稱查詢資料,請參閱「使用 Databricks-to-Databricks OpenSharing 閱讀資料共享(針對接收者)」。
您可以使用結構化串流,以累加方式處理共享數據表中的記錄。 若要使用結構化串流,您必須啟用資料表的歷程記錄共用。 參見 ALTER SHARE。 記錄共用需要 Databricks Runtime 12.2 LTS 或更新版本。
如果共享資料表的來源 Delta 資料表已啟用變更資料摘要,且該共用已啟用歷程記錄,則你可以在使用 Structured Streaming 或批次作業讀取 Open Sharing 共用時使用變更資料摘要。 請參閱 在 Azure Databricks 上使用變更資料摘要。
使用OpenSharing格式關鍵字閱讀
Apache Spark DataFrame 的讀取作業支援 deltasharing 關鍵詞,如下列範例所示:
df = (spark.read
.format("deltasharing")
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)
讀取 OpenSharing 共用資料表的變更資料摘要
對於已啟用記錄共用和變更數據摘要的數據表,您可以使用 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>")
)
使用結構化串流閱讀 OpenSharing 共享資料表
對於具有共用歷程記錄的數據表,您可以使用共用數據表作為結構化串流的來源。 記錄共用需要 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>")
)