Azure Databricks中IPython.notebook.kernel.execute的替代方案咨询
Azure Databricks中替代IPython.kernel.execute的方案
Azure Databricks Notebook的JavaScript运行环境和标准Jupyter不同,不存在IPython全局对象,你需要使用Databricks内置的databricks.notebook.kernel.execute方法来实现JS调用Python函数的需求,以下是调整后的可运行代码示例:
%javascript function call_python_fn(cmdstr){ return new Promise((resolve, reject) => { const callbacks = { // 接收Python代码的输出内容 onOutput: (output) => { if (output.data && output.data.text) { resolve(output.data.text.trim()); } }, // 监听代码执行状态 onStatus: (status) => { if (status === 'error') { reject('Python代码执行出错'); } } }; databricks.notebook.kernel.execute(cmdstr, callbacks); }); } var tmp = 2; call_python_fn('print('+tmp+')').then((resolve)=>alert(resolve));
关键注意点:
- 替换原代码中的
IPython.notebook.kernel.execute为Databricks专属的databricks.notebook.kernel.execute - 回调函数结构需要适配Databricks的API规范:
onOutput负责接收输出结果,onStatus用于监听执行状态 - 如果需要传递复杂结构化数据,可以让Python代码返回JSON格式字符串,再在JS中通过
JSON.parse()解析处理
内容的提问来源于stack exchange,提问作者Hari Prasad
相关产品推荐
相关产品推荐

