Ler tabelas compartilhadas do OpenSharing usando Apache Spark DataFrames
Este artigo fornece exemplos de sintaxe para usar o Apache Spark para consultar dados compartilhados usando OpenSharing. Use a palavra-chave deltasharing como opção de formato para operações de DataFrame.
Outras opções para consultar dados compartilhados
Também é possível criar queries que utilizem nomes de tabela compartilhados em catálogos OpenSharing registrados no metastore, como nos exemplos a seguir:
- SQL
- Python
SELECT * FROM shared_table_name
spark.read.table("shared_table_name")
Para saber mais sobre como configurar o OpenSharing no Databricks e consultar dados usando nomes de tabela compartilhados, consulte Ler dados compartilhados com Databricks-to-Databricks OpenSharing (para destinatários).
Você pode usar a transmissão estructurada para processar registros em tabelas compartilhadas de forma incremental. Para usar a transmissão estructurada, você deve habilitar o compartilhamento de história para a tabela. See ALTER SHARE. O compartilhamento de histórico requer Databricks Runtime 12.2 LTS ou superior.
Se a tabela compartilhada tiver o feed de dados alterados ativado na tabela Delta de origem e história ativada no compartilhamento, você poderá usar o feed de dados alterados ao ler um compartilhamento OpenSharing com transmissão estructurada ou operações em lote. Consulte Usar o feed de dados de alteração no Databricks.
Leia com a palavra-chave do formato OpenSharing
A palavra-chave deltasharing é compatível com operações de leitura do Apache Spark DataFrame, como mostrado no exemplo a seguir:
df = (spark.read
.format("deltasharing")
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)
Ler feed de dados alterados para tabelas compartilhadas OpenSharing
Para tabelas que têm história compartilhada e feed de dados alterados ativado, você pode ler registros de feed de dados alterados usando Apache Spark DataFrames. O compartilhamento de história requer Databricks Runtime 12.2 LTS ou acima.
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>")
)
Ler Tabelas Compartilhadas do OpenSharing usando transmissão estructurada
Para tabelas com história compartilhada, pode-se usar a tabela compartilhada como fonte para transmissão estructurada. O compartilhamento de história requer Databricks Runtime 12.2 LTS ou acima.
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>")
)