如何将 Azure Blob 存储容器挂载为在 Python 中以独立模式在本地运行的 Spark 作业的目录?
Posted
技术标签:
【中文标题】如何将 Azure Blob 存储容器挂载为在 Python 中以独立模式在本地运行的 Spark 作业的目录?【英文标题】:How can I mount Azure Blob Storage Container as a directory for Spark Jobs which is running locally in Standalone Mode in Python? 【发布时间】:2022-01-13 03:39:37 【问题描述】:在我的项目中,我们需要将存储在 Azure Blob 存储中的 JSON 数据作为 Spark 作业进行处理。是否有任何 API 或任何方法可以让我们将 Blob 存储挂载为 Spark 的文件目录,然后根据数据的新鲜度执行操作?
【问题讨论】:
【参考方案1】:借助以下 URI 语法,我们将能够访问 Azure Blob 存储中的文件;
wasb[s]://<containername>@<accountname>.blob.core.windows.net/<path>
请看下图:
这里 spark 使用未加密的 HTTP 从 Azure 存储 Blob 端点访问数据。
为此,我们还需要在 core-site.xml 文件中将 Azure 存储帐户配置为与 HDFS 兼容的存储,并将两个 jars hadoop-azure 和 azure-storage 添加到您的类路径中,以便通过协议 wasb[s] 访问 HDFS。
您可以参考此blog 和此SO 了解更多关于此的见解。 感谢 Ajay 和 Arsen 提供的深刻见解。
【讨论】:
仅供参考,您应该刚刚链接到文档,作为问题下的评论。此外,OP 的问题非常笼统(主要是文档请求),没有任何具体问题 - 最好询问更多细节,而不是发布基于文档的答案。最后:请避免发布文本图片,只提供格式化文本 - 您发布的内容对许多人来说是不可读的(更重要的是:您直接从链接到的文档页面获取了该图片 - 这被视为抄袭)。 关于格式化文本与文本图像的仅供参考,以供将来参考:请参阅此meta post,原因有很多,为什么这很重要。 我刚刚意识到你答案的第二部分,你几乎逐字复制了另一个 SO 答案的一部分。下一次,只链接到别人的答案(作为评论,而不是你自己的答案),而不是抄袭别人的作品。以上是关于如何将 Azure Blob 存储容器挂载为在 Python 中以独立模式在本地运行的 Spark 作业的目录?的主要内容,如果未能解决你的问题,请参考以下文章
从 Azure Databricks 将数据写入 Azure Blob 存储
将 DataBricks 连接到 Azure Blob 存储
如何将所有文件从 blob 存储容器导入和处理到 azure databricks
如何将静态文件添加/上传到 Azure Blob 存储容器的特定路径