【问题标题】:Execution of cmd cells in databricks notebook based on some condition基于某些条件在 databricks 笔记本中执行 cmd 单元
【发布时间】:2019-08-20 15:35:37
【问题描述】:

我在 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 跳过单元格 它抛出一个错误,说“该模块不是 IPython 模块”。任何帮助或建议表示赞赏。谢谢。

【问题讨论】:

    标签: pyspark apache-spark-sql databricks azure-databricks spark-notebook


    【解决方案1】:

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

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

    将笔记本想象成一个函数,可以parameterized 接受并返回exit values

    示例见官方文档here

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2020-12-21
        • 2021-05-22
        • 2016-06-16
        • 2023-03-24
        • 2023-03-18
        • 2022-08-09
        • 1970-01-01
        • 1970-01-01
        • 2022-09-26
        相关资源
        最近更新 更多