【问题标题】:MainThread: Vaex: Error while Opening Azure Data Lake Parquet fileMainThread:Vaex:打开 Azure Data Lake Parquet 文件时出错
【发布时间】:2021-11-16 21:02:17
【问题描述】:
我尝试使用 vaex 生成的 SAS URL(在 url 中嵌入日期时间限制和令牌)在 Azure 数据湖第 2 代存储上打开镶木地板:
vaex.open(sas_url)
我得到了错误
ERROR:MainThread:vaex:error opening '也是 sas_url 的路径(出于安全原因无法发布)'
ValueError: Do not know how open (can't publicize the sas url) , no handler for https is known
如何让 vaex 读取文件,或者是否有其他 Azure 存储更适合 vaex?
【问题讨论】:
-
嗨@Temiloluwa,它对我显示相同的错误,即使在尝试使用 blob URL 时也是如此。此外,在 vaex 与 Azure 存储集成的情况下,没有可用的支持文档。在官方文档中,他们给出了 AWS S3 和 GCP 存储的示例。请访问vaex.io/docs/example_io.html。如果我得到任何有用的信息,会更新你。
标签:
azure
azure-data-lake-gen2
vaex
【解决方案1】:
我终于找到了解决办法! Vaex 可以通过以下方式读取 Azure blob 存储中的文件:
import vaex
import adlfs
storage_account = "..."
account_key = "..."
container = "..."
object_path = "..."
fs = adlfs.AzureBlobFileSystem(account_name=storage_account, account_key=account_key)
df = vaex.open(f"abfs://{container}/{object_path}", fs=fs)
更多详情,我在https://github.com/vaexio/vaex/issues/1272找到了解决方案
【解决方案2】:
Vaex 无法使用 https 源读取数据,这就是您收到错误 "no handler for https is known" 的原因。
此外,根据document,vaex 支持来自 Amazon S3 存储桶和 Google 云存储的数据输入。
云支持:
亚马逊网络服务 S3
谷歌云存储
其他云存储选项
他们提到其他云存储也受支持,但没有任何支持文档与任何示例,他们从 Azure 存储帐户获取数据,也使用 SAS URL。
也请访问API document for vaex library了解更多信息。