如何使用 python 从 azure databricks notebook 连接到本地 Windows 服务器?

Posted

技术标签:

【中文标题】如何使用 python 从 azure databricks notebook 连接到本地 Windows 服务器?【英文标题】:How can I connect to an on-prem windows server from azure databricks notebook using python? 【发布时间】:2021-08-09 07:36:20 【问题描述】:

需要在 azure databricks 和本地 Windows 服务器之间建立连接。我尝试了下面的python代码:

import os

filePath = "\\\\SERVER001\\folder\\"
fileExtension = ".xml"

def get_file_count(filePath, fileExtension):
  try:
    fileCount = len([name for name in os.listdir(filePath) if name.endswith(fileExtension)])
    print(fileCount)
  except Exception as e:
    print(str(e))
get_file_count(filePath, fileExtension)

但它给了我错误:

[Errno 2] No such file or directory: '\\\\SERVER001\\folder\\'

我猜它正在数据块目录中搜索。连接本身没有发生。我是databricks领域的初学者。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

不可能开箱即用,因为该服务器在本地,而 Databricks 在云中,对您的本地环境一无所知。

你有两个选择:

    您需要将文件上传到 DBFS,然后访问它们。例如,您可以通过 UI - 通过 DBFS 文件浏览器 (docs) 或通过上传数据 UI (docs) 执行此操作。如果您有很多文件很大,那么您可以使用 az-copy 之类的东西将文件上传到 Azure 存储

    理论上,您可以将网络环境设置为 connect to on-premise via ***(您需要带有“自带 VNet”的工作区),然后访问文件共享,但这可能具有挑战性,因为您需要确保拥有所有在防火墙等上打开必要的端口。

我会建议使用第一个选项。

【讨论】:

以上是关于如何使用 python 从 azure databricks notebook 连接到本地 Windows 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 或 Java 从本地将数据上传到 Azure ADLS Gen2

使用 Python Qpid/Proton/Messenger(),如何过滤来自 Azure 事件中心的消息?

Azure Functions HTTP 触发器:如何将异常从 python 工作日志返回给 API 调用者

如何从 Azure blob 数据存储中获取 Python pathlib 路径?

python - 如何从 azurewebsites 访问 API

如何从用于 vm 的 Azure Python SDK 获取 OS 磁盘相关的详细信息