Код, предоставленный Databricks для cousera DP203, управляемой службы Databricks в AZURE:
%fs head /mnt/training/wikipedia/pageviews/pageviews_by_second.tsv
Это не работает. Это дает:
AzureException: hadoop_azure_shaded.com.microsoft.azure.storage.StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
Caused by: StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
Почему они — Databricks — оставили это и не обновили путь доступа соответствующим образом?
display(dbutils.fs.ls('/databricks-datasets/wikipedia-datasets/data-001/pageviews/raw/'))
и %fs head /databricks-datasets/wikipedia-datasets/data-001/pageviews/raw/pageviews_by_second.tsv
.То, что я сделал, было следующим образом: вы можете видеть, что я внес изменения, чтобы заставить spark.read
работать:
Но wasbs
устарел.
Итак, в чем здесь идея? Как я тоже умею csvFile = "/databricks-datasets/wikipedia-datasets/data-001/pageviews/raw/pageviews_by_second.tsv"
Прекрасно работает.
В Databricks Community Edition я могу нормально выполнить запрос /mnt/training/...
.
Мне интересно, какой сделать вывод. Отсутствие обновления Databricks после перехода на ADLS2, возможно, перемещение, изменение точек mnt? Я не ожидаю, что на этом этапе курса ABFS понадобится для создания точек монтирования.
AzureException: Hadoop_azure_shaded.com.microsoft.azure.storage.StorageException: серверу не удалось проверить подлинность запроса. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись. Причина: StorageException: серверу не удалось аутентифицировать запрос. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись.
Вышеупомянутая ошибка может возникнуть из-за того, что при создании точки монтирования используется неверный токен SAS или используемый токен SAS прекращен.
Когда вы подключаетесь к ADLS1 или ADLS2, они используют разные конечные точки для подключения ADLS1, используйте adl
и ADLS 2, wasbs,abfss
.
Вам необходимо обновить точку монтирования для определенного места.
dbutils.fs.mount(
source = "wasbs://cont_name@storage_acc_name.blob.core.windows.net",
mount_point = "/mnt/blob1", # Update the mount_point parameter to start with a forward slash
extra_configs = {'fs.azure.sas.cont_name.storage_acc_name.blob.core.windows.net': 'SAS token'}
)
%fs head /mnt/blob/filepath
Верно, это курс, предлагаемый Coursera и Databricks. Нам не следует обновлять точки монтирования. Я могу сделать это для себя, но мне не придется делать это для предлагаемого курса. Соглашаться? Ключ доступа не доступен, я думаю, что смогу получить доступ к Sas, но как насчет остальных участников курса? В API с надежной безопасностью userX и userY имеют свои собственные наборы ключей.
Я думаю, вы имеете в виду создание точки монтирования, а не создание точки монтирования.
Поскольку это данные, предоставляемые в рамках курса, я ожидаю, что один SAS будет использоваться для всех участников курса, а не по одному на каждого пользователя, что, как я понимаю, возможно. Пожалуйста, подтвердите, и я приму ответ.
Проверено у моего приятеля из AZURE.
@AlexOtt, что думаешь?