让我们来看一个例子。我正在处理一个大型数据集,并希望以每周为基础进行治疗。我的进程现在被分成多个块/命令。
我的问题是,是否有可能在所有的笔记本上循环,或者我应该在同一块中重新组合所有的代码/处理?
例如,在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"})