使用Python在Databricks中的另一个笔记本中动态创建笔记本 [英] Create a notebook inside another notebook in Databricks Dynamically using Python

查看:0
本文介绍了使用Python在Databricks中的另一个笔记本中动态创建笔记本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在另一个笔记本中创建一个笔记本,创建的笔记本应该同时包含Python代码和SQL代码(使用%SQL,%python)。创建后,我需要从父笔记本运行创建的笔记本。有没有人能建议更好的方法来完成此操作。

我找到了类似dbutils.note book.run()的东西,它将帮助我运行已有的笔记本,但正在寻找一种方法,先创建一个笔记本,然后再运行它。任何建议都是值得理解的!!

推荐答案

可以使用Databricks Workspace REST APIimport命令。

如下所示(将笔记本内容放入content值):

import requests
import os
import json
import base64

ctx = json.loads(dbutils.notebook.entry_point.getDbutils().notebook().getContext().toJson())
host_name = ctx['extraContext']['api_url']
host_token = ctx['extraContext']['api_token']
notebook_path = ctx['extraContext']['notebook_path']
new_path = os.path.join(os.path.dirname(notebook_path), 'New name')

content = "some code"

data = {
  "content": base64.b64encode(content.encode("utf-8")).decode('ascii'),
  "path": new_path,
  "language": "PYTHON",
  "overwrite": True,
  "format": "SOURCE"
}

response = requests.post(
    '{host_name}/api/2.0/workspace/import',
    headers={'Authorization': f'Bearer {host_token}'},
    json = data
  ).json()

这篇关于使用Python在Databricks中的另一个笔记本中动态创建笔记本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆