Блоки данных Azure - не удается читать файлы .csv с помощью искровых заданий из службы хранилища данных 2-го поколения.

У меня есть клистер с данными, работающий нормально. И с помощью следующего кода я также могу смонтировать свою учетную запись хранилища данных datalake gen2. Монтирую все на / mnt / data1

val configs =  Map("fs.azure.account.auth.type" -> "OAuth",
           "fs.azure.account.oauth.provider.type" -> "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
           "fs.azure.account.oauth2.client.id" -> appID,
           "fs.azure.account.oauth2.client.secret" -> password,
           "fs.azure.account.oauth2.client.endpoint" -> ("https://login.microsoftonline.com/" + tenantID + "/oauth2/token"),
           "fs.azure.createRemoteFileSystemDuringInitialization"-> "true")
    
    dbutils.fs.mount(
    source = "abfss://" + fileSystemName + "@" + storageAccountName + ".dfs.core.windows.net/",
    mountPoint = "/mnt/data1",
    extraConfigs = configs)

До этого момента все нормально и работает. Но когда я пытаюсь получить доступ к одному файлу из места монтирования с помощью следующей команды

val df = spark.read.csv("/mnt/data1/creodemocontainer/movies.csv")

Я получаю следующую ошибку

java.io.FileNotFoundException: dbfs:/mnt/data1/creodemocontainer2/movies.csv
    at com.databricks.backend.daemon.data.client.DatabricksFileSystemV2.$anonfun$getFileStatus$2(DatabricksFileSystemV2.scala:775)

Хотя я могу без проблем подключать и загружать эти файлы в PowerBI. Я ничего не понимаю за последние 2 дня, так что любая помощь будет очень признательна.

заранее спасибо.


person Rohit    schedule 05.11.2020    source источник
comment
Не могли бы вы использовать dbutils.fs.ls, чтобы проверить, существует ли файл?   -  person Jim Xu    schedule 06.11.2020
comment
Вот ошибка ............. java.io.FileNotFoundException: dbfs: /mnt/data1/creodemocontainer/movies.csv в com.databricks.backend.daemon.data.client.DatabricksFileSystemV2. $ anonfun $ getFileStatus $ 2 (DatabricksFileSystemV2.scala: 775)   -  person Rohit    schedule 06.11.2020
comment
спасибо за подсказку. Я не должен добавлять имя контейнера во время чтения. Сейчас все работает нормально.   -  person Rohit    schedule 06.11.2020
comment
Поскольку проблема решена, не могли бы вы опубликовать свой ответ?   -  person Jim Xu    schedule 06.11.2020


Ответы (1)


Делимся ответом согласно комментарию оригинального автора:

Я не должен добавлять имя контейнера во время чтения.

val df = spark.read.csv("/mnt/data1/creodemocontainer/movies.csv")

Удалено имя контейнера, так как он уже был вызван в точке монтирования. Теперь все работает нормально

val df = spark.read.csv("/mnt/data1/movies.csv")
person CHEEKATLAPRADEEP-MSFT    schedule 06.11.2020