如何在Databricks集群上运行非Spark类型的原生Python代码
Databricks远程集群运行非Spark原生Python代码操作方案
以下所有方案均支持代码仅由你自己可控访问,无需对外共享,符合保密性要求:
- 方案一:提交Python任务到Databricks Jobs
你可以把写完的原生Python代码保存为独立.py脚本,上传到DBFS或者自己的Databricks工作区私有路径,在Databricks Jobs中新建任务,类型选择「Spark Python 任务」,指定你要用的远程集群和脚本路径即可运行。脚本内部可以完全不调用Spark相关API,仅运行原生Python逻辑,依赖可以提前安装到集群,也可以在脚本开头加%pip install 依赖名临时安装。 - 方案二:通过本地Databricks Connect环境远程触发执行
已经配置好Databricks Connect的本地环境可以直接调用Databricks SDK提交任务,不需要在页面手动操作。参考代码如下:from databricks.sdk import WorkspaceClient from databricks.sdk.service.jobs import RunSubmitTaskSettings, SparkPythonTask # 初始化客户端,会自动读取本地Databricks Connect配置的认证信息 w = WorkspaceClient() # 提交单次运行任务 run = w.jobs.submit( run_name="本地提交的原生Python任务", tasks=[ RunSubmitTaskSettings( task_key="python_task", existing_cluster_id="替换为你的远程集群ID", spark_python_task=SparkPythonTask( python_file="dbfs:/path/to/你的脚本.py" ) ) ] ) # 等待任务执行完成获取结果 result = w.jobs.wait_get_run_job_terminated(run.run_id) - 方案三:短代码片段实时执行
如果你只是需要运行小段Python代码,不需要保存为脚本,可以调用集群的命令执行接口,直接把代码片段作为请求参数提交到远程集群运行,运行结果会实时返回本地,代码不会留存到Databricks服务端,满足高保密要求。
内容的提问来源于stack exchange,提问作者Nagarjuna Kanneganti
相关产品推荐
相关产品推荐

