Я использую (ну ... пытаюсь использовать) Azure Databricks, и я создал блокнот.
Я бы хотел, чтобы ноутбук подключил мое озеро данных Azure (Gen1) и преобразовал данные. Я следовал документации и поместил код в первую ячейку моего блокнота:
spark.conf.set("dfs.adls.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("dfs.adls.oauth2.client.id", "**using the application ID of the registered application**")
spark.conf.set("dfs.adls.oauth2.credential", "**using one of the registered application keys**")
spark.conf.set("dfs.adls.oauth2.refresh.url", "https://login.microsoftonline.com/**using my-tenant-id**/oauth2/token")
dbutils.fs.ls("adl://**using my data lake uri**.azuredatalakestore.net/tenantdata/events")
Выполнение завершается с этой ошибкой:
com.microsoft.azure.datalake.store.ADLException: Ошибка перечисления
каталог /
Сбой операции null с исключением: java.io.IOException: сервер
возвращенный код ответа HTTP: 400 для URL:
https://login.microsoftonline.com/using my-tenant-id / oauth2 / token
Последнее возникшее исключение возникло после 5 попыток.
[java.io.IOException, java.io.IOException, java.io.IOException, java.io.IOException, java.io.IOException]
[ServerRequestId: null] в
com.microsoft.azure.datalake.store.ADLStoreClient.getExceptionFromResponse (ADLStoreClient.java:1169)
в
com.microsoft.azure.datalake.store.ADLStoreClient.enumerateDirectoryInternal (ADLStoreClient.java:558)
в
com.microsoft.azure.datalake.store.ADLStoreClient.enumerateDirectory (ADLStoreClient.java:534)
в
com.microsoft.azure.datalake.store.ADLStoreClient.enumerateDirectory (ADLStoreClient.java:398)
в
com.microsoft.azure.datalake.store.ADLStoreClient.enumerateDirectory (ADLStoreClient.java:384)
Я присвоил зарегистрированному приложению роль Reader
для озера данных:
Вопрос
Как я могу разрешить Spark доступ к озеру данных?
Обновление
Я предоставил папкам tenantdata
и events
Read
и Execute
доступ: