是否有一种方法来循环通过一个完整的Databricks笔记本(pySpark)?



让我们来看一个例子。我正在处理一个大型数据集,并希望以每周为基础进行治疗。我的进程现在被分成多个块/命令。

我的问题是,是否有可能在所有的笔记本上循环,或者我应该在同一块中重新组合所有的代码/处理?

例如,在2021年1月工作。我想使代码每周运行一次,给他starting date,从这个日期运行到day+7,应用所有的处理并存储结果,从day+8更新我的start变量,直到它达到固定的限制,例如1月31日。

是否有一种方法可以做到这一点,而无需在同一块中重新分组所有代码?作为«run all above//all below命令行?»

您可以通过更改您的笔记本以通过小部件接受参数来实现这一点,然后您可以触发该笔记本,例如,作为Databricks作业或使用将实现循环(doc)的另一个笔记本的dbutils.notebook.run,传递必要的日期作为参数。

这将是:

  • 在你原来的笔记本:
starting_date = dbutils.widgets.get("starting_date")
.... your code
  • 在调用笔记本中(60是超时,根据转换的数量可能更高):
dbutils.notebook.run("path_to_orginal_notebook", 60, 
{"starting_date": "2021-01-01"})

相关内容

最新更新