Configurar as credenciais de armazenamento Delta
Para configurar as credenciais de armazenamento Delta, consulte Configurar o acesso ao armazenamento de objetos na nuvem para Databricks. Databricks não recomenda mais a transmissão de credenciais de armazenamento por meio das opções do site DataFrame, conforme descrito neste artigo.
A Databricks armazena os dados das tabelas do Delta Lake no armazenamento de objetos na nuvem. A configuração do acesso ao armazenamento de objetos na nuvem requer permissões na nuvem account que contém seu armazenamento account.
Passar credenciais de armazenamento como opções de DataFrame
O Delta Lake suporta a especificação de credenciais de armazenamento como opções para DataFrameReader e DataFrameWriter. O senhor pode usar isso se precisar interagir com dados em várias contas de armazenamento regidas por diferentes chaves de acesso.
Esse recurso está disponível em Databricks Runtime 10.4 LTS e acima.
Por exemplo, o senhor pode passar suas credenciais de armazenamento por meio das opções do DataFrame:
- Python
- Scala
spark.conf.set("google.cloud.auth.service.account.enable", "true")
df1 = spark.read \
.option("fs.gs.auth.service.account.email", "<client-email-1>") \
.option("fs.gs.project.id", "<project-id-1>") \
.option("fs.gs.auth.service.account.private.key", "<private-key-1>") \
.option("fs.gs.auth.service.account.private.key.id", "<private-key-id-1>") \
.read("...")
df2 = spark.read \
.option("fs.gs.auth.service.account.email", "<client-email-2>") \
.option("fs.gs.project.id", "<project-id-2>") \
.option("fs.gs.auth.service.account.private.key", "<private-key-2>") \
.option("fs.gs.auth.service.account.private.key.id", "<private-key-id-2>") \
.read("...")
df1.union(df2).write \
.mode("overwrite") \
.option("fs.gs.auth.service.account.email", "<client-email-3>") \
.option("fs.gs.project.id", "<project-id-3>") \
.option("fs.gs.auth.service.account.private.key", "<private-key-3>") \
.option("fs.gs.auth.service.account.private.key.id", "<private-key-id-3>") \
.save("...")
spark.conf.set("google.cloud.auth.service.account.enable", "true")
val df1 = spark.read
.option("fs.gs.auth.service.account.email", "<client-email-1>")
.option("fs.gs.project.id", "<project-id-1>")
.option("fs.gs.auth.service.account.private.key", "<private-key-1>")
.option("fs.gs.auth.service.account.private.key.id", "<private-key-id-1>")
.read("...")
val df2 = spark.read
.option("fs.gs.auth.service.account.email", "<client-email-2>")
.option("fs.gs.project.id", "<project-id-2>")
.option("fs.gs.auth.service.account.private.key", "<private-key-2>")
.option("fs.gs.auth.service.account.private.key.id", "<private-key-id-2>")
.read("...")
df1.union(df2).write
.mode("overwrite")
.option("fs.gs.auth.service.account.email", "<client-email-3>")
.option("fs.gs.project.id", "<project-id-3>")
.option("fs.gs.auth.service.account.private.key", "<private-key-3>")
.option("fs.gs.auth.service.account.private.key.id", "<private-key-id-3>")
.save("...")