Невозможно создать таблицу на подключенном диске в Databricks: для пути не найдено родительское внешнее местоположение

Всякий раз, когда я пытаюсь создать таблицу, используя приведенный ниже код, для подключенного диска в ADLS Gen 2, я получаю сообщение об ошибке:

No parent external location found for path

%sql
CREATE TABLE IF NOT EXISTS testtable USING csv OPTIONS (path "abfss://mnt/lake/RAW/circuits.csv");

Однако когда я пытаюсь создать таблицу, используя полный путь, включая имя учетной записи хранения, у меня не возникает проблем:

%sql
CREATE TABLE IF NOT EXISTS event5 USING csv OPTIONS (path "abfss://[email protected]/RAW/circuits.csv", inferSchema=True, header=True);

Кроме того, если я попытаюсь создать таблицу без добавления abfss, я получу ошибку:

AnalysisException: [RequestId=b845fe0c-0788-4ead-82fd-8c9a686aa2ef ErrorClass=INVALID_PARAMETER_VALUE] GenerateTemporaryPathCredential uri mnt/lake/RAW/allraces.csv is not a valid URI. Error message: INVALID_PARAMETER_VALUE: Missing cloud file system scheme.


%sql
CREATE TABLE IF NOT EXISTS testtable USING csv OPTIONS (path "mnt/lake/RAW/circuits.csv");

Что интересно, у меня нет проблем с чтением одного и того же файла по тому же пути:

test = spark.read.csv("/mnt/lake/RAW/circuits.csv", inferSchema=True, header=True)

Тот факт, что я могу прочитать файл, говорит о том, что я успешно смонтировал диск. Это видно из вывода display(dbutils.fs.mounts())

Самое странное, что когда я пытаюсь создать ту же таблицу из своего Databricks Community Edition, используя тот же подключенный диск, у меня не возникает проблем, см. ниже. Кажется, у меня возникла проблема с Azure Databricks.

Есть предположения?

Просто хотел обновить вопрос, чтобы показать, что мой тест учетной записи хранения ADLS прошел успешно. Поэтому я действительно не понимаю, почему я получаю ошибку:


124
1

Ответ:

Решено

Для пути не найдено родительское внешнее расположение

Вышеуказанная ОШИБКА указывает на то, что система не может найти указанный путь.

AnalysisException: [RequestId=b845fe0c-0788-4ead-82fd-8c9a686aa2efErrorClass=INVALID_PARAMETER_VALUE] GenerateTemporaryPathCredentialuri mnt/lake/RAW/allraces.csv не является допустимым URI. Сообщение об ошибке: INVALID_PARAMETER_VALUE: отсутствует схема облачной файловой системы.

Сообщение об ошибке указывает на то, что в указанном вами пути отсутствует схема файловой системы. В Databricks при чтении данных из Azure Data Lake Storage необходимо указать правильную схему для конкретной службы облачного хранилища.

Я попробовал следующий подход:

display(dbutils.fs.mounts())

Полученные результаты:

/mnt/raw    abfss://[email protected]/   

Поскольку я уже смонтировал папку raw. Итак, теперь я создал новую папку Lake, а затем создал таблицу, используя приведенную ниже таблицу.

CREATE  TABLE  IF  NOT  EXISTS event5 USING csv OPTIONS (path  "/mnt/raw/lake/Customer.csv", inferSchema=True, header=True)

Полученные результаты:

[FileInfo(path='dbfs:/mnt/raw/lake/Customer.csv', name='Customer.csv', size=132, modificationTime=1721132445000)]
 df = spark.read.format("csv") \
    .option("header", "true") \
    .option("inferSchema", "true") \
    .load("dbfs:/mnt/raw/lake/Customer.csv")
df.show()

Полученные результаты:

+---+----------------+--------------------+------------+
| ID|            Name|               Email|LastModified|
+---+----------------+--------------------+------------+
|  1|John Doe Updated|[email protected]|  2023-05-24|
|  4|   Lisa Anderson|lisa.anderson@exa...|  2023-05-22|
+---+----------------+--------------------+------------+