Ошибка при чтении XML из BLOB-контейнера mycontainer в учетной записи .blob.core.windows.net не найдена - PullRequest
1 голос
/ 29 мая 2019

Я использую следующее, чтобы прочитать XML val df = spark.read .option ("rowTag", "testing") .xml (xmlpath) xmlpath - это wasbs: //mycontainer@.blob.core.windows.net/ но есть следующая ошибка shaded.databricks.org.apache.hadoop.fs.azure.AzureException: shaded.databricks.org.apache.hadoop.fs.azure.AzureException: контейнер mycontainer в учетной записи .blob.core.windows.net не найден, и мы можем создать его с использованием анонимных учетных данных, и в конфигурации не было найдено учетных данных для них. что происходит

Я поместил этот же файл в другую учетную запись BLOB, код успешно запущен. Я не знаю, что случилось с этим аккаунтом BLOB.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

XML-lib использует RDD API. Параметры конфигурации Hadoop, установленные с помощью spark.conf.set (...), не доступны через SparkContext. Это означает, что, хотя они видимы для API DataFrame и Dataset, они не видны для API RDD. Если вы используете RDD API для чтения из хранилища BLOB-объектов Azure, вы должны установить учетные данные, e. г. на уровне кластера / Дополнительные параметры / Spark в конфигурации кластера:

spark.hadoop.fs.azure.account.key.aseursvgspasasandbox380.blob.core.windows.net <storage-key>

См. Также документацию Azure Databricks Раздел: Доступ к хранилищу BLOB-объектов Azure с помощью API RDD.

0 голосов
/ 30 мая 2019

Судя по сообщению об ошибке, ваш токен SAS не работает.Простой способ создания токена SAS - использование обозревателя хранилищ Microsoft Azure, как показано ниже.

enter image description here

enter image description here

enter image description here

Для получения дополнительных сведений о подключении BLOB-объекта Azure см. этот документ или код ниже.

spark.conf.set(
  "fs.azure.sas.<your-container-name>.<your-storage-account-name>.blob.core.windows.net",
  "<the query string you copy>") 

dbutils.fs.ls("wasbs://<your-container-name>@<your-storage-account-name>.blob.core.windows.net/<your-directory-name>")

Ожидаемый результат:

enter image description here

Надеюсь, это поможет.

...