繁体   English   中英

如何通过pyspark检查blob是否存在

[英]How to check if a blob exists through pyspark

我试图在数据存储器中将blob存储文件抓取到我的python代码中,只要它存在。 如何通过pyspark检查它是否存在?

我不认为有一些方法可以检查是否存在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后,您就可以读取/写入Azure blob了:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM