如何使用 python 从 azure databricks notebook 连接到本地 windows 服务器?
How can I connect to an on-prem windows server from azure databricks notebook using python?
需要在 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 目录中搜索。连接本身没有发生。我是数据块领域的初学者。任何帮助将不胜感激。
开箱即用是不可能的,因为该服务器是内部部署的,而 Databricks 在云端,对您的内部部署环境一无所知。
你有两个选择:
您需要将文件上传到DBFS,然后访问它们。例如,您可以通过 UI - 通过 DBFS 文件浏览器(docs) or via Upload Data UI (docs). If you have a lot of files is huge, then you can use something like az-copy 将文件上传到 Azure 存储
理论上您可以将网络环境设置为 connect to on-premise via VPN(您需要带有“自带 VNet”的工作区),然后访问文件共享,但这可能具有挑战性,因为您需要确保在防火墙等设备上打开了所有必要的端口。
我建议选择第一个选项。
需要在 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 目录中搜索。连接本身没有发生。我是数据块领域的初学者。任何帮助将不胜感激。
开箱即用是不可能的,因为该服务器是内部部署的,而 Databricks 在云端,对您的内部部署环境一无所知。
你有两个选择:
您需要将文件上传到DBFS,然后访问它们。例如,您可以通过 UI - 通过 DBFS 文件浏览器(docs) or via Upload Data UI (docs). If you have a lot of files is huge, then you can use something like az-copy 将文件上传到 Azure 存储
理论上您可以将网络环境设置为 connect to on-premise via VPN(您需要带有“自带 VNet”的工作区),然后访问文件共享,但这可能具有挑战性,因为您需要确保在防火墙等设备上打开了所有必要的端口。
我建议选择第一个选项。