1

我在 databricks 中有一个 python 3.5 笔记本。我需要根据某些条件执行 databricks 笔记本单元格。我没有看到任何开箱即用的功能。

我尝试使用以下代码创建一个 python egg 并将其安装在 databricks 集群中。

def skip(line, cell=None):
'''Skips execution of the current line/cell if line evaluates to True.'''
  if eval(line):
    return

  get_ipython().ex(cell)

def load_ipython_extension(shell):

  '''Registers the skip magic when the extension loads.'''
  shell.register_magic_function(skip, 'line_cell')

def unload_ipython_extension(shell):
  '''Unregisters the skip magic when the extension unloads.'''
  del shell.magics_manager.magics['cell']['skip']

但是,当我尝试使用 %load_ext skip_cell 使用扩展加载它时,它会抛出一个错误,说“该模块不是 IPython 模块”。任何帮助或建议表示赞赏。谢谢。

4

2 回答 2

1

Databricks 笔记本不基于 Jupyter/IPython,这就是您看到该错误的原因。

如果您尝试构建条件工作流,我建议将Notebook Workflows功能与 Databricks REST API 结合使用。这将允许您根据条件语句和其他进程的结果来控制程序的流程。

将笔记本视为可以参数化以接受和返回退出值的函数。

例如,请参阅此处的官方文档。

于 2019-08-23T01:18:32.870 回答
0

现在支持根据条件运行笔记本

if <condition>:
    dbutils.notebook.run("notebook-name", 60, {"argument": "data", "argument2": "data2", ...})

更多细节在这里 https://docs.databricks.com/notebooks/notebook-workflows.html#example

于 2022-02-08T15:58:40.777 回答