Dela via


Läs delade tabeller i Delta-delning med Apache Spark DataFrames

Den här artikeln innehåller syntaxexempel på hur du använder Apache Spark för att fråga efter data som delas med deltadelning. Använd nyckelordet deltasharing som formatalternativ för DataFrame-åtgärder.

Andra alternativ för att fråga efter delade data

Du kan också skapa frågor som använder delade tabellnamn i deltadelningskataloger som är registrerade i metaarkivet, till exempel de i följande exempel:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Mer information om hur du konfigurerar deltadelning i Azure Databricks och frågar efter data med hjälp av delade tabellnamn finns i Läsa data som delas med Databricks-till-Databricks Delta Sharing (för mottagare).

Du kan använda Structured Streaming för att bearbeta poster i delade tabeller stegvis. Om du vill använda Structured Streaming måste du aktivera historikdelning för tabellen. Se ÄNDRA RESURS. Historikdelning kräver Databricks Runtime 12.2 LTS eller senare.

Om den delade tabellen har aktiverat ändringsdataflöde i Delta-källtabellen och historiken är aktiverad på resursen kan du använda ändringsdataflöde när du läser en Delta-resurs med strukturerad direktuppspelning eller batchåtgärder. Se Använda Delta Lake-ändringsdataflöde i Azure Databricks.

Läsa med nyckelordet Deltadelningsformat

Nyckelordet deltasharing stöds för Apache Spark DataFrame-läsåtgärder, enligt följande exempel:

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

Läsa ändringsdataflöde för delade deltatabeller

För tabeller som har historiken delad och ändringsdatafeed aktiverad kan du läsa ändringsdataflödesposter med Apache Spark DataFrames. Historikdelning kräver Databricks Runtime 12.2 LTS eller senare.

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

Läsa delade deltatabeller med strukturerad direktuppspelning

För tabeller som har delad historik kan du använda den delade tabellen som källa för strukturerad direktuppspelning. Historikdelning kräver Databricks Runtime 12.2 LTS eller senare.

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