本文详细介绍了笔记本项的定义结构。
支持的格式
笔记本项支持 FabricGitSource 和 ipynb 格式。 如果未指定任何格式,则默认为 FabricGitSource。
注释
该 FabricGitSource 格式以与所选语言对应的文件格式返回笔记本内容。 例如,如果选择 PySpark,则内容将作为 .py 文件返回。
定义部件
笔记本项的定义由单个部件构成,构造如下:
路径 :文件名,例如
artifact.content.ipynb。- 对于 PySpark 或 Python:
notebook-content.py - 对于 Spark SQL:
notebook-content.sql - for Spark (Scala):
notebook-content.scala - for SparkR (R):
notebook-content.r
- 对于 PySpark 或 Python:
有效负载类型 - InlineBase64
有效负载 请参阅:从 Base64解码的有效负载内容示例。
平台部件
平台部件是包含笔记本元数据信息的文件。
创建 具有定义的项会遵循平台文件(如果提供)。 (平台不是必需的)。
获取项 定义始终返回平台文件。
更新项 定义接受平台文件(如果提供)但前提是
updateMetadata=true设置新的 URL 参数。
从 Base64 解码的 ipynb 格式有效负载内容示例
{
"nbformat": 4,
"nbformat_minor": 5,
"cells": [
{
"cell_type": "code",
"source": ["# Welcome to your new notebook\n# Type here in the cell editor to add code!\n"],
"execution_count": null,
"outputs": [],
"metadata": {}
}
],
"metadata": {
"language_info": {
"name": "python"
}
}
}
ipynb 的定义示例
{
"format": "ipynb",
"parts": [
{
"path": "artifact.content.ipynb",
"payload": "eyJuYmZvcm1hdCI6NCwibmJmb3JtYXR_fbWlub3IiOjUsImNlbGxzIjpbeyJjZWxsX3R5cGUiOiJjb2RlIiwic291cmNlIjpbIiMgV2VsY29tZSB0byB5b3VyIG5ldyBub3RlYm9va1xuIyBUeXBlIGhlcmUgaW4gdGhlIGNlbGwgZWRpdG9yIHRvIGFkZCBjb2RlIVxuIl0sImV4ZWN1dGlvbl9jb3VudCI6bnVsbCwib3V0cHV0cyI6W10sIm1ldGFkYXRhIjp7fX1dLCJtZXRhZGF0YSI6eyJsYW5ndWFnZV9pbmZvIjp7Im5hbWUiOiJweXRob24ifX19",
"payloadType": "InlineBase64"
},
{
"path": ".platform",
"payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=",
"payloadType": "InlineBase64"
}
]
}
从 Base64 解码的构造 git 资源格式有效负载内容示例
# Fabric notebook source
# METADATA ********************
# META {
# META "kernel_info": {
# META "name": "synapse_pyspark"
# META },
# META "dependencies": {}
# META }
# CELL ********************
# Welcome to your new notebook
# Type here in the cell editor to add code!
# METADATA ********************
# META {
# META "language": "python",
# META "language_group": "synapse_pyspark"
# META }
fabricGitSource 的定义示例
{
"format": "fabricGitSource",
"parts": [
{
"path": "notebook-content.py",
"payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIk5vdGVib29rIiwKICAgICJkaXNwbGF5TmFtZSI6ICJOb3RlYm9vayA4IiwKICAgICJkZXNjcmlwdGlvbiI6ICJOZXcgbm90ZWJvb2siCiAgfSwKICAiY29uZmlnIjogewogICAgInZlcnNpb24iOiAiMi4wIiwKICAgICJsb2dpY2FsSWQiOiAiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIgogIH0KfQ==",
"payloadType": "InlineBase64"
},
{
"path": ".platform",
"payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=",
"payloadType": "InlineBase64"
}
]
}