Azure Databricks (Standard Tier) で ADLS2 にアクセスする

 
doc には KeyVault + SecretScope 使えって書いてあるけど Standard Tier だと SecretScope 使えんかったのでメモ。

Azure Data Lake Storage Gen2-Azure Databricks を使ってみる – Workspace | Microsoft Docs

SharedKey使っても読み込める。

val acc = "ストレージアカウント"
val cont = "コンテナ"
val adls_path = "abfss://" + cont + "@" + acc + ".dfs.core.windows.net/"

spark.conf.set("fs.azure.account.auth.type."+ acc +".dfs.core.windows.net", "SharedKey")
spark.conf.set("fs.azure.account.key."+ acc +".dfs.core.windows.net", "キー")

val df = spark.read.option("header", "true").option("delimiter", ",").csv(adls_path + "myfile.csv")

display(df)

あとは blob としてマウントする方法も可。

val acc = "ストレージアカウント"
val cont = "コンテナ"
val blob_path = "wasbs://" + cont + "@" + acc + ".blob.core.windows.net/"

dbutils.fs.mount(
  source = blob_path
  mountPoint = "/mnt/data",
  extraConfigs = Map("fs.azure.account.key." + acc + ".blob.core.windows.net" -> "キー"))

val df = spark.read.option("header", "true").option("delimiter", ",").csv("/mnt/data/myfile.csv")

display(df)