Delta ストレージの資格情報を構成する
注記
Delta ストレージの資格情報を構成するには、「 Databricks のクラウド オブジェクト ストレージへのアクセスを構成する」を参照してください。 Databricks では、この記事で説明されているように、DataFrame オプションを使用してストレージ資格情報を渡すことは推奨されなくなりました。
Databricks は、Delta Lake テーブルのデータをクラウド オブジェクト ストレージに格納します。 クラウド・オブジェクト・ストレージへのアクセスを構成するには、ストレージ・アカウントを含むクラウド・アカウント内の権限が必要です。
ストレージ資格情報を DataFrame オプションとして渡す
Delta Lake では、DataFrameReader と DataFrameWriter のオプションとしてストレージ資格情報を指定できます。 これは、異なるアクセス キーによって管理される複数のストレージ アカウントのデータを操作する必要がある場合に使用できます。
注記
この機能は、Databricks Runtime 10.4 LTS 以降で使用できます。
たとえば、DataFrame オプションを使用してストレージの資格情報を渡すことができます。
- Python
- Scala
Python
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("...")
Scala
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("...")