Share via


Ler tabelas partilhadas do Delta Sharing utilizando DataFrames do Apache Spark

Este artigo fornece exemplos de sintaxe do uso do Apache Spark para consultar dados compartilhados usando o Delta Sharing. Use a deltasharing palavra-chave como uma opção de formato para operações DataFrame.

Outras opções para consultar dados partilhados

Você também pode criar consultas que usam nomes de tabelas compartilhadas em catálogos de Compartilhamento Delta registrados no metastore, como os dos exemplos a seguir:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Para obter mais informações sobre como configurar o Compartilhamento Delta no Azure Databricks e consultar dados usando nomes de tabela compartilhados, consulte Ler dados compartilhados usando o Compartilhamento Delta de Databricks para Databricks (para destinatários).

Você pode usar o Streaming Estruturado para processar registros em tabelas compartilhadas incrementalmente. Para usar o Streaming Estruturado, você deve habilitar o compartilhamento de histórico para a tabela. Ver ALTER SHARE. O compartilhamento de histórico requer o Databricks Runtime 12.2 LTS ou superior.

Se a tabela compartilhada tiver o feed de dados de alteração habilitado na tabela Delta de origem e o histórico habilitados no compartilhamento, você poderá usar o feed de dados de alteração enquanto lê um compartilhamento Delta com Streaming Estruturado ou operações em lote. Consulte Usar feed de dados de alteração do Delta Lake no Azure Databricks.

Leia com a palavra-chave Delta Sharing format

A deltasharing palavra-chave é suportada para operações de leitura do Apache Spark DataFrame, conforme mostrado no exemplo a seguir:

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

Ler feed de dados de alteração para tabelas compartilhadas do Delta Sharing

Para tabelas com histórico compartilhado e feed de dados de alteração habilitado, você pode ler registros de feed de dados de alteração usando o Apache Spark DataFrames. O compartilhamento de histórico requer o Databricks Runtime 12.2 LTS ou superior.

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

Leia tabelas compartilhadas do Delta Sharing usando Streaming estruturado

Para tabelas com histórico compartilhado, você pode usar a tabela compartilhada como fonte para Streaming Estruturado. O compartilhamento de histórico requer o Databricks Runtime 12.2 LTS ou superior.

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