Невозможно получить доступ к подключенному тому с помощью python в Databricks - PullRequest
1 голос
/ 14 января 2020

Я пытаюсь предоставить доступ к контейнеру Azure учетной записи Gen2 команде в своем рабочем пространстве Databricks, подключив его к базе данных dbfs, используя Credential Passthrough. Я хочу иметь возможность управлять доступом с помощью Active Directory, поскольку в конечном итоге существуют контейнеры, которые нужно монтировать только для чтения.

Я основал свой код на этом учебном пособии: https://docs.microsoft.com/en-us/azure/databricks/data/data-sources/azure/adls-passthrough#adls -aad-credentials

Извлечение из моего конфига:

"spark_conf": {
        "spark.databricks.cluster.profile": "serverless",
        "spark.databricks.passthrough.enabled": "true",
        "spark.databricks.delta.preview.enabled": "true",
        "spark.databricks.pyspark.enableProcessIsolation": "true",
        "spark.databricks.repl.allowedLanguages": "python,sql"
    }

Затем я запускаю следующий код:

dbutils.fs.mount(
  source = f"wasbs://data@storage_account_name.blob.core.windows.net",
  mount_point = "/mnt/data/",
  extra_configs = {
  "fs.azure.account.auth.type":"CustomAccessToken",
  "fs.azure.account.custom.token.provider.class":spark.conf.get("spark.databricks.passthrough.adls.gen2.tokenProviderClassName")
}

Это успех, так как я могу получить доступ к тому с dbutils.

>> dbutils.fs.ls('dbfs:/mnt/storage_account_name/data')
[FileInfo(path='dbfs:/mnt/storage_account_name/data/folder/', name='folder/', size=0)]

Моя проблема в том, что я запускаю %sh ls /dbfs/mnt/storage_account_name/data или пытаюсь получить к нему доступ с помощью python

>> import os 
>> os.listdir('/dbfs/')
Out[1]: []

>> os.listdir('/dbfs/mnt/')
FileNotFoundError: [Errno 2] No such file or directory: '/dbfs/mnt/'

Я не могу найти то, что мне не хватает. Что-нибудь настроить, чтобы сделать его доступным для python? Спасибо.

Ответы [ 2 ]

1 голос
/ 16 января 2020

Существуют определенные ограничения при использовании опции сквозной передачи учетных данных, поэтому она не работает. Там нет вопроса синтаксиса. См. Официальный делать c, чтобы понять.

0 голосов
/ 14 января 2020

Ответ очень прост.

Ограничения API локального файла

В следующем списке перечислены ограничения использования API локального файла, которые применяются к каждой версии среды выполнения Databricks.

All - Does not support credential passthrough.

Источник: https://docs.microsoft.com/en-us/azure/databricks/data/databricks-file-system#local -file-apis

...