Как проверить, существует ли блоб через pyspark - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь втиснуть файл хранилища больших двоичных объектов в код python для блоков данных, только если он существует.Как я могу проверить, существует ли он через pyspark?

1 Ответ

0 голосов
/ 03 апреля 2019

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

На уровне приложений, прежде всего, как всегда в приложениях spark, вам нужно получить сеанс spark:

session = SparkSession.builder.getOrCreate()

Тогда вам нужно настроить ключ учетной записи:

session.conf.set(
    "fs.azure.account.key.<storage-account-name>.blob.core.windows.net",
    "<your-storage-account-access-key>"
)

ИЛИ SAS токен для контейнера:

session.conf.set(
    "fs.azure.sas.<container-name>.blob.core.windows.net",
    "<sas-token>"
)

Как только ключ доступа к учетной записи или SAS настроен, вы готовы для чтения / записи в BLOB-объект Azure:

sdf = session.read.parquet(
    "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<prefix>"
)

Хотя, используя python, вы можете легко вызвать метод get_blob_reference, чтобы проверить, существует ли blob или нет.

def blob_exists(self):
        container_name = self._create_container()
        blob_name = self._get_blob_reference()

        # Basic
        exists = self.service.exists(container_name, blob_name)  # False
        self.service.create_blob_from_text(container_name, blob_name, u'hello world')
        exists = self.service.exists(container_name, blob_name)  # True

        self.service.delete_container(container_name)

Вы можете найти ссылку здесь:

https://github.com/Azure/azure-storage-python/blob/master/samples/blob/block_blob_usage.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...