У меня есть Azure Databricks (Databricks 6.4 (включает в себя Apache Spark 2.4.5, Scala 2.11)). Стандартный кластер, настроенный для работы с Active Directory для поддержки запросов к Azure Data Lake Gen 2.
ADLS был смонтирован через python:
configs = {
"fs.azure.account.auth.type": "CustomAccessToken",
"fs.azure.account.custom.token.provider.class": spark.conf.get("spark.databricks.passthrough.adls.gen2.tokenProviderClassName")
}
dbutils.fs.mount(
source = "abfss://taxi@purelyexample.dfs.core.windows.net/",
mount_point = "/mnt/taxi",
extra_configs = configs)
Использование {sparkR} из блокнота данных возвращает результаты.
taxiall <- read.df("/mnt/taxi/yellow",source="parquet")
collect(mean(rollup(taxiall, "vendorID", "puLocationId"), "totalAmount"))
Использование {sparklyr} дает проблема с токеном.
library(sparklyr)
library(dplyr)
sc <- spark_connect(method = "databricks")
yellowtaxi <- spark_read_parquet(path="/mnt/taxi/yellow",sc=sc)
yellow_taxi %>%
group_by(vendorID, puLocationId) %>%
summarise(avgFare= mean(totalAmount), n= n()) ->
fares
collect(fares)
Ошибка: com.databricks.backend.daemon.data.client.adl.AzureCredentialNotFoundException: не удалось найти токен ADLS Gen2
Нужно ли что-то еще, чтобы обеспечить работу sparklyr с проходом учетных данных?